2016-07-07 10 views
12

Piszę aplikację serwera WWW przy użyciu NodeJS 6.3.0. aplikacja jest wykonywana z parametrem --expose-gc, więc dostępna jest funkcja global.gc(). pytanie brzmi: jak mogę się dowiedzieć, kiedy zakończono ręczne wykonanie śmieciarza.kiedy ręcznie uruchamiam garbage collector, skąd mam wiedzieć, kiedy jest on zakończony?

jest global.gc() funkcją synchroniczną, a to oznacza, że ​​następny wiersz kodu zostanie wykonany, gdy funkcja zakończy to zadanie?

Czy mogę w jakiś sposób monitorować, kiedy moja konkretna realizacja śmieciarza została zakończona?

dziękuję!

Odpowiedz

8

Więc znalazłem odpowiedź this.

Po uruchomieniu procesu węzła z flagą -expose-gc można wywołać metodę global.gc(), aby wymusić na węźle uruchomienie zbierania śmieci. Pamiętaj, że wszystkie inne operacje wykonywane w aplikacji węzła są wstrzymywane do czasu zakończenia GC, więc nie używaj go zbyt często lub wpłynie to na wydajność.

This jedna uwagi na ten temat.

Uruchamianie global.gc() ręcznie (aktywny z węzła --expose_gc) by zmniejszyć zużycie 50 MB pamięci, co czas i wstrzymać aplikację około 400ms.

Wygląda na to, że jest synchroniczny i blokuje do momentu jego zakończenia.

Powiązane problemy