Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Форум группы: delphi > Fast scaling memory manager for Delphi |
Автор: Akella 8.12.2010, 11:58 | ||
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 |
Может не всегда можно увеличить скорость работы приложения? Может ты неправильно что-то сделал. Ну и написал бы авторам ![]() |
Автор: lukas 12.12.2010, 19:02 |
Да я собственно и ничего не делал, я взял и подключил как там сказано. У меня в основном работа с рекордами и ссылками на них, массивы динамические. И что там за TopMM, никак не могу найти исходники на этот менеджер. Круто было бы, если кто написал быстрый менеджер для lazarus'a, хотя бы под винду. |
Автор: lukas 16.12.2010, 12:39 |
2 ядра у меня. |
Автор: RomanEEP 16.12.2010, 14:52 | ||
Значит код не использует интенсивного перераспределения памяти под динамические массивы и строки. Узкие места скриптового движка скорее всего лежат в парсере, математики и тут от менеджера памяти ничего не зависит, потому что на него приходится 1% времени выполнения |
Автор: lukas 18.12.2010, 19:09 |
Еще как зависит, у меня не парсер работает, а виртуальная машина - байт-код, активно я проверял работу над хеш массивами, где интенсивно идет работа над массивами, их увеличения, уменьшения и т.п. Например FastMM явно дает в этом преимущества, потому что после того как подключил этот менеджер было реальное замедление. И я это понимаю, потому что на лазарусе и в фрипаскале менеджер памяти в этом отношении не такой быстрый, функция setlength например очень медленная, медленней в 2-3 раза и еще move и т.п. И это еще в движке у меня активно все кешируется и лишний раз не создается, то что не нужно лежит в памяти (помечается как мусор) и потом используется снова. У меня не интерпретатор, а компилятор в байт-код и вирт машина. Влияет на скорость выделение памяти под рекорды, которые как раз таки находятся в массивах, я сам это замерял. |