Pobieranie ilości przydzielonej pamięci

Pobieranie ilości przydzielonej pamięci
Patryk27
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Wrocław
  • Postów: 13042
0

Piszę mały garbage collector (mark-and-sweep) do mojej wirtualnej maszyny i utknąłem właściwie na początku:
W jaki sposób w Lazarusie pobrać ilość zaalokowanej/przydzielonej bibliotece pamięci?
Odnalazłem funkcje GetHeapStatus oraz GetFPCHeapStatus, lecz problem jest taki, że GC działa sobie w osobnym wątku, więc obydwie funkcje zwracają dane dla wątku GC, a nie ogólnie programu (czy raczej stricte samej biblioteki SSVM), zatem na nic mi to :/
Tak więc pytanie brzmi: jak pobrać ilość pamięci przydzielonej mojej bibliotece z poziomu jej samej? Najlepiej, aby rozwiązanie było przenośne pomiędzy systemami, ponieważ celuję właśnie w niezależność od systemu.
Myślałem nad napisaniem małego własnego memory-managera i skorzystania z SetMemoryManager, lecz z tym byłoby w cholerę roboty...

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.