"Это к посту про FM:
Я тоже может сейчас не в тему напишу. Но всё зависит от решаемых задач.
В
наших проектах есть такая вот вещь - свои датасеты. В обычном режиме
там память под каждую запись (row) выделяется в общей куче. Но есть
режим пула - когда в один момент времени выделяется память... скажем для
10000 записей. А дальше записи берутся из пула (и возвращаются
обратно).
И это даёт прирост в скорости. Но только в старых версиях Delphi со
старым менеджером памяти. С FastMM прирост не вооружённым глазом не
заметен даже на очень большом кол-ве записей (моё любимое кол-во записей
для тестов - 6 миллионов).
Или вот ещё пример - VirtualTreeView. Там тоже есть режим пула для выделяемых нод. Картинка та же самая.
И
даже если сложить выигранное время там плюс тут - то с секундомером
пользователь может и заметит разницу, но с таким объёмом данных никто
локально не работает.
Ну и ещё я как-то делал оптимизации динамических
массивов - типа выделяем сразу большое кол-во элементов (типа Capacity) и
отдельно храним кол-во актуальных элементов. По скорости - оно конечно
быстрее, чем постоянно делать SetLength(array, Length(array) + 1), но на
такой маленький процент... в общем я решил, что пусть код будет проще,
чище и понятнее.
Другое дело, элементы графики, с которыми активно взаимодействует пользователь, тут оптимизация конечно нужна.
А
если вспомнить Ваш текстовый процессор, то там наверняка одно слово -
это отдельный объект. Слов в документе тысячи, документов тоже не мало,
понятно, что тут игра тоже стоит свеч.
Ну и про FM моё мнение такое. Задумка отличная,
архитектура продуманная, оптимизация хромает. Но на всё нужны ресурсы.
Пусть пилят, мы подождём."
-- по делу всё написано. Мне так кажется.
-- по делу всё написано. Мне так кажется.
Я столкнулся с тем, что в FM даже сам TCanvas тормозит. Отрисовка сотни-другой графических примитивов (квадраты всякие скругленные) занимает ощутимое на глаз время. Так что да, все это еще оптимизировать и оптимизировать. Но идея хорошая, надеюсь, хватит сил и квалификации для доведения до ума.
ОтветитьУдалить"даже сам TCanvas тормозит"
ОтветитьУдалитьЧто удивительно - предтеча FM - VGScene - НЕ ТОРМОЗИТ. Я его использую.
Значит - оптимизировать - можно.
И нужно...
Кстати "что удивительно" - тот же TCanvas в том же самом приложении под Android - НЕ ТОРМОЗИТ.
ОтветитьУдалитьКстати VGScene - не тормозит и под XE3 и XE4.
Удалить