Witaj!
flowCRANE dodał nowy post w wątku: FastMM4-AVX w projektach Delphi/FPC/Lazarus
Każdy dobry alokator będzie miał zastosowanie, jeśli dobrze wykonuje swoje zadanie. Sam korzystam z domyślnego alokatora z RTL-a Free Pascala w wersjach przeznaczonych do debuggowania, dlatego że robi robotę i dobrze współpracuje z modułem HeapTrc, który rejestruje i zgłasza ewentualne wycieki pamięci. Natomiast w wersji release, silnik korzysta z menedżera pamięci zaimplementowanego w SDL3, który jest przystosowany do gier. Natomiast jeśli chodzi o testy alokatorów, to na razie nie mam czego testować. Wszystko ze względu na obecny etap prac oraz przede wszystkim specyfikę projektu. Architektura wygląda w taki sposób, że wszystko co żyje długo, siedzi albo w segmencie danych, albo na stosie, a do sterty trafia tylko to co musi. Przy czym to wszystko jest możliwe głównie dlatego, że nie używam OOP, więc to ja decyduję co i gdzie jest alokowane. Na razie, pomimo setek różnych obiektów i funkcji, zużycie pamięci jest śmiesznie małe:
Kopiuj
Heap dump by heaptrc unit of E:\Projects\When the Nightmare Comes\Game\Bin\Win32-x64\Full\wnc_debug.exe 82 memory blocks allocated : 90312/90400 82 memory blocks freed : 90312/90400 0 unfreed memory blocks : 0 True heap size : 163840 (192 used in System startup) True free heap : 163648
Cały silnik alokuje na stercie raptem 90kB w 82 blokach, więc jak się pewnie domyślasz, alokator nie ma na razie znaczenia.  |