|
Заблокирован
|
||||||
Объявление статических массивов по константе02.06.2025, 16:56. Показов 3273. Ответов 30
Метки нет (Все метки)
Есть проблема - в ходе работы над программой нужно будет изменять размеры массивов. Сами массивы - статические, они будут быстрее работать. Но по мере отладки обрабатывающего данные кода - массивы надо будет увеличивать, а с ними и циклы обработки. Встаёт вопрос - как объявить статичный массив...ну хотя-бы по константе, раз уже в ходе выполнения программы - нельзя?
Кликните здесь для просмотра всего текста
0
|
||||||
| 02.06.2025, 16:56 | |
|
Ответы с готовыми решениями:
30
Передача через нетипизированный параметр как динамических, так и статических (разного объёма) массивов Обработка одномерных статических массивов-Delphi7
|
|
Модератор
4153 / 2362 / 814
Регистрация: 15.11.2015
Сообщений: 9,498
|
|
| 03.06.2025, 21:19 | |
|
0
|
|
|
Заблокирован
|
||||||||||||||||||
| 03.06.2025, 21:25 [ТС] | ||||||||||||||||||
|
Про делать мозг:
Сам код процедур я изменил Кликните здесь для просмотра всего текста
20 процентов к коду статического, ни больше ни меньше, это чисто в коде, с моими нубознаниями ассемблера. Скорость объективно измерить так нельзя, так как проц кэширует и делает много того чего ему не указывают. Но так в среднем - со статическим 94, с динамическим 83, что там делает проц - тёмный лес, известно только его производителю: кэширует, слайсит, чего-том ещё - не важно. Имеет смысл читать ассемблер.
0
|
||||||||||||||||||
|
Модератор
4153 / 2362 / 814
Регистрация: 15.11.2015
Сообщений: 9,498
|
||
| 03.06.2025, 21:51 | ||
|
1
|
||
|
Native x86
6860 / 3792 / 1026
Регистрация: 13.02.2013
Сообщений: 11,861
|
||
| 04.06.2025, 01:34 | ||
|
Это вообще ни о чем. Вся разница между статикой и динамикой -- в одном разименовании указателя, коим является переменная динамического массива. Давайте вообще от указателей теперь откажемся, это же так медленно!
0
|
||
|
Native x86
6860 / 3792 / 1026
Регистрация: 13.02.2013
Сообщений: 11,861
|
|
| 04.06.2025, 01:52 | |
|
P.S. Кстати, при внимательном взгляде на мой замер чуть выше можно обнаружить, что статический массив обрабатывался дольше динамического. Я думал, артефакт многозадачной среды исполнения, но нет! Запускал много раз, менял местами блоки кода обработки массивов. Динамика обрабатывается быстрее не смотря на одну "лишнюю" команду.
Статика: Динамика:
0
|
|
|
Native x86
6860 / 3792 / 1026
Регистрация: 13.02.2013
Сообщений: 11,861
|
|
| 04.06.2025, 02:04 | |
|
Так что вот какая загогулина. Для статики компилятор использует длинную форму
mov eax, [array_item_addr], которая оказалась намного медленнее, чем короткая форма этой же команды, которая извлекает элемент из динамического массива. А лишний mov rcx, [dyn_array_var] по-видимому съедается процессорным оптимизатором.
0
|
|
|
Заблокирован
|
|
| 04.06.2025, 08:12 [ТС] | |
|
Кому нужно это гадание о способностях процессора закрытого типа? Есть код и одна лишняя команда - факт, осязаемо, а гадать о чем-то непонятном - никому не интересно. Даже если процессор станет открытого типа, то всё равно одна команда лишняя, так как никому не нужны непредсказуемые процессоры, с агитацией за непредсказуемость кода - это наверное только в убыль: потом начнется - "учёные обнаружили новые свойства бита" - я это четко представляю себе на экране телевизора и в новостях в сети, в топку эти свойства, шаманизм и прочую белеберду.
0
|
|
|
Native x86
6860 / 3792 / 1026
Регистрация: 13.02.2013
Сообщений: 11,861
|
||||
| 04.06.2025, 19:30 | ||||
|
0
|
||||
|
Модератор
4153 / 2362 / 814
Регистрация: 15.11.2015
Сообщений: 9,498
|
||
| 04.06.2025, 20:35 | ||
|
1
|
||
|
47 / 39 / 10
Регистрация: 25.02.2025
Сообщений: 84
|
|||||||||||
| 06.06.2025, 17:07 | |||||||||||
|
Разрешите представить свои результаты тестирования скорости работы с массивами.
Массивы тестировал на задаче сортировки методом прямого выбора (straight selection), так как этот метод интенсивно работает с массивом, переставляя элементы внутри массива. Массивы использовал 4-х видов: 1. Статический (array[1..100]); 2. Динамический фиксированной длины (^array[1..100]); 3. Динамический произвольной длины (getmem); 4. Массив-объект (array of). Тестовая программа компилировалась для выпуска (release), поэтому в ней нет проверок времени выполнения. Команда компиляции такая:
Результаты тестирования (время сортировки): Кликните здесь для просмотра всего текста
Запуск 1.
Статический массив фиксированной длины 100000 Продолжительность расчёта: 12.644 секунд. Динамический массив фиксированной длины (^arrtype) 100000 Продолжительность расчёта: 12.818 секунд. Динамический массив произвольной длины (GetMem) 100000 Продолжительность расчёта: 12.642 секунд. Динамический массив произвольной длины (array of) 100000 Продолжительность расчёта: 12.634 секунд. ----------------------------------- Запуск 2. Статический массив фиксированной длины 100000 Продолжительность расчёта: 12.641 секунд. Динамический массив фиксированной длины (^arrtype) 100000 Продолжительность расчёта: 12.756 секунд. Динамический массив произвольной длины (GetMem) 100000 Продолжительность расчёта: 12.641 секунд. Динамический массив произвольной длины (array of) 100000 Продолжительность расчёта: 12.634 секунд. ----------------------------------- Запуск 3. Статический массив фиксированной длины 100000 Продолжительность расчёта: 12.643 секунд. Динамический массив фиксированной длины (^arrtype) 100000 Продолжительность расчёта: 12.818 секунд. Динамический массив произвольной длины (GetMem) 100000 Продолжительность расчёта: 12.642 секунд. Динамический массив произвольной длины (array of) 100000 Продолжительность расчёта: 12.632 секунд. ---------------------------------- Что можно сказать? Статический массив и динамический через getmem работают одинаково по скорости. Динамический через new - отстатёт по скорости на 0,9 - 1,37 процента из-за необходимости разыменования указателя. Динамический через array of - самый быстрый (но всего на мизерные 0,06 - 0,09 процента). Кликните здесь для просмотра всего текста
3
|
|||||||||||
|
Заблокирован
|
||
| 07.06.2025, 14:24 [ТС] | ||
|
0
|
||
| 07.06.2025, 14:24 | |
|
Задача: "Программирование одномерных статических массивов" Двумерный массив с переменной длиной строки в константе При появлении слова,которое задано в константе ,программа должна выполнить определенное действие Динамический список статических очередей Использование памяти в статических массивах. Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Запустил конкурс "тем и промптов для текстовых квестов созданных почти чисто ИИ"
Adler 06.10.2026
Всем привет!
За последние три-четыре дня я создал более 16 текстовых квестовых игр используя преимущественно по одному запросу к ИИ на игру. Мне так понравилось смотреть все ветки/ сцены во всех. . .
|
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык.
Возвращает он вот это:
https:/ / i. **********/ vqBWLe2. png
Нужную строчку в 3й колонке просто выдумал. .
Это. . .
|
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor.
Это. . .
|
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js.
В помощники взял Яндекс-Алису.
Было создано три зала на разные интересы.
исторические и ретро
сериал Хичкок. . .
|
|
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
|
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#.
Название изменил на ColorStep.
Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
|
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами:
- ВидТО (СправочникСсылка. ВидыТО);
- ВидГСМ. . .
|
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала.
Ниже прикреплён. . .
|