2015-10-14 2 views
8

Есть ли способ узнать, какие объекты собираются больше всего в приложении Javascript?JS: Профиль Какие объекты Конструкторы собирают мусор

Я знаю, что могу получить снимок кучи, но это говорит только о том, какие объекты являются наиболее распространенными, а не наиболее собранными для мусора.

И Heap Allocations не дают подробной информации об объекте.

+0

, который во многом зависит от среды, в которой работает ваш JS. Например. если вы работаете на nashorn, вы можете просто использовать профилировщик JVM. – the8472

+0

Вы нашли решение на этом? – Jodes

+1

@Jodes См. Http://stackoverflow.com/questions/39429647/how-to-detect-the-memory-allocations-that-are-triggering-garbage-collection-in-j/ – guest271314

ответ

1

С помощью какого механизма работы с JavaScript? Каждый двигатель будет иметь свой собственный GC и собственный способ мониторинга событий GC. Двигатель Chrome V8 был бы хорошим местом для начала, если вы пытаетесь узнать больше об одной реализации GC: https://developers.google.com/v8/ Если вы потянете источник из github https://chromium.googlesource.com/v8/v8.git, вы найдете файлы src/heap/gc-tracer. [H | cc] предоставляют много возможностей, и вы можете добавить больше для своих собственных профилирующих потребностей.

+0

Даниэль, это не отвечает на вопрос. Реализация механизма GC не является вопросом. Нужен способ узнать, какие объекты javascript собирает GC. – Jodes

+0

Посмотрите на исходный код. Если он использует Chrome V8, он может получить эту информацию. –

+0

Извините, я не следую. Как можно использовать код V8 для ускорения работы javascript? Изменив его и создав собственный интерпретатор javascript C++ для получения информации об отладке? – Jodes

1

Я думаю, вы можете сделать это, выполнив несколько снимков кучи, а затем сравните моментальные снимки, чтобы определить, какие объекты собираются. Вы можете обратиться к this ответам. Надеюсь, это поможет :)

Смежные вопросы