Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Форум группы: delphi > Fast scaling memory manager for Delphi


Автор: Akella 8.12.2010, 11:58
Цитата
It is faster (4x!) and scales better than FastMM. Also faster (3x) than TopMM, but equal scaling. 


http://code.google.com/p/scalemm/

Я так понял, что этот менеджер памяти работает в 4 раза быстрее нежели FastMM.

Означает ли это, что наши программы будут работать быстрее?

Автор: RomanEEP 8.12.2010, 21:43
Да, конечно. Код который создает кучу мелких объектов, работает со строками и динамическими массивами может стать ощутимо быстрее.

Автор: lukas 12.12.2010, 10:28
Никакого прироста я не заметил, тестил на своем скрипт движке, наоборот замедление на 20%.

Автор: Akella 12.12.2010, 16:30
Может не всегда можно увеличить скорость работы приложения? Может ты неправильно что-то сделал. Ну и написал бы авторам smile

Автор: lukas 12.12.2010, 19:02
Да я собственно и ничего не делал, я взял и подключил как там сказано. У меня в основном работа с рекордами и ссылками на них, массивы динамические. И что там за TopMM, никак не могу найти исходники на этот менеджер.

Круто было бы, если кто написал быстрый менеджер для lazarus'a, хотя бы под винду.

Автор: cemick 15.12.2010, 17:11
Цитата(lukas @  12.12.2010,  19:02 Найти цитируемый пост)
а я собственно и ничего не делал, я взял и подключил как там сказано. У меня в основном работа с рекордами и ссылками на них, массивы динамические. И что там за TopMM, никак не могу найти исходники на этот менеджер.

Круто было бы, если кто написал быстрый менеджер для lazarus'a, хотя бы под винду.


А сколько ядер на машине на которой вы тестили, судя по описанию они там что то размножили по потокам.

Автор: lukas 16.12.2010, 12:39
2 ядра у меня.

Автор: RomanEEP 16.12.2010, 14:52
Цитата(lukas @  12.12.2010,  10:28 Найти цитируемый пост)
Никакого прироста я не заметил, тестил на своем скрипт движке, наоборот замедление на 20%.

Значит код не использует интенсивного перераспределения памяти под динамические массивы и строки. Узкие места скриптового движка скорее всего лежат в парсере, математики и тут от менеджера памяти ничего не зависит, потому что на него приходится 1% времени выполнения

Автор: lukas 18.12.2010, 19:09
Еще как зависит, у меня не парсер работает, а виртуальная машина - байт-код, активно я проверял работу над хеш массивами, где интенсивно идет работа над массивами, их увеличения, уменьшения и т.п. Например FastMM явно дает в этом преимущества, потому что после того как подключил этот менеджер было реальное замедление.

И я это понимаю, потому что на лазарусе и в фрипаскале менеджер памяти в этом отношении не такой быстрый, функция setlength например очень медленная, медленней в 2-3 раза и еще move и т.п. И это еще в движке у меня активно все кешируется и лишний раз не создается, то что не нужно лежит в памяти (помечается как мусор) и потом используется снова.

У меня не интерпретатор, а компилятор в байт-код и вирт машина. Влияет на скорость выделение памяти под рекорды, которые как раз таки находятся в массивах, я сам это замерял.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)