Вверх ↑
Ответов: 9906
Рейтинг: 351
#1: 2018-01-02 16:03:18 ЛС | профиль | цитата
Netspirit писал(а):
Так что ну его нафиг такой способ,

Ну конечно ну его нафиг, если без него можно обойтись.
Ибо сказано, что лучшее средство от перхоти - гильотина

В данном конкретном случае, почти избежать работы с хипом можно просто одной реаллокацией в начале цикла.
Что-то типа такого: SetLength(RealArray, ArrIn._Count);

Однако беда в том, что это пока только идея, доведение которой требует некоторой работы.
И при этом, сейчас это не самое больное (в плане быстродействия) место.
Большее время забирают MoveMemory.
Это видно из разницы во времени обработки прямо- и обратно-отсортированных массивов.
В обоих случаях количество реаллокаций одинаково, а MoveMemory отрабатывают совсем уж разные объемы памяти (~0 и по максимуму).
карма: 9

0
Редактировалось 1 раз(а), последний 2018-01-02 16:04:17