Информация об изменениях

Сообщение Re[2]: Оптимизация через разделение/вынос функционала от 15.06.2024 9:13

Изменено 15.06.2024 10:36 Khimik

Re[2]: Оптимизация через разделение/вынос функционала
Здравствуйте, swame, Вы писали:


S>Измерений не делал, но по виду кода такой алгоритм будет на порядок — два медленнее стандартного дельфового,

S>так как в нем огромное количество лишнего распределения памяти.
S>Может использовал бы стандартный — ускорил бы в сто тыщ раз, и некрасивый код с копированием данных не понадобился.
S>Сделай тест, сравни со стандартным.
S>И нахрена писать все в строчку.

Понятно что тут лишние такты уходят на выделение памяти, обработку классов и присвоения; полагаю, этот код примерно в 2-5 раз медленнее стандартной сортировки. Но всё равно для больших массивов он в миллион раз быстрее простой сортировки из двух вложенных циклов. Я же говорю что аналогичным алгоритмом ускорил одну процедуру в своей программе где-то в тысячу раз. Ну а если надо ещё ускорить, наверно первичное — заменить класс на рекорд в Delphi, и ещё наверно держать временные массивы не с числами а с указателями (индексами для исходного массива).
Re[2]: Оптимизация через разделение/вынос функционала
Здравствуйте, swame, Вы писали:


S>Измерений не делал, но по виду кода такой алгоритм будет на порядок — два медленнее стандартного дельфового,

S>так как в нем огромное количество лишнего распределения памяти.
S>Может использовал бы стандартный — ускорил бы в сто тыщ раз, и некрасивый код с копированием данных не понадобился.
S>Сделай тест, сравни со стандартным.
S>И нахрена писать все в строчку.

Понятно что тут лишние такты уходят на выделение памяти, обработку классов и присвоения; полагаю, этот код примерно в 2-5 раз медленнее стандартной быстрой сортировки. Но всё равно для больших массивов он в миллион раз быстрее простой сортировки из двух вложенных циклов. Я же говорю что аналогичным алгоритмом ускорил одну процедуру в своей программе где-то в тысячу раз. Ну а если надо ещё ускорить, наверно первичное — заменить класс на рекорд в Delphi, и ещё наверно держать временные массивы не с числами а с указателями (индексами для исходного массива).