Как найти не разрушенные, но GC'ed Javascript объекты в Chrome?

У меня есть приложение с некоторыми объектами (типа BaseTexture), на которые должна вызываться явная функция destroy, когда они больше не используются. В противном случае они могут пропустить некоторую память. Это нужно сделать, прежде чем собирать мусор (и, очевидно, это можно сделать только тогда), но это не всегда происходит.

В Java я бы обнаружил и запустил запись с помощью finalize, но в Javascript этого не существует.

Могу ли я обнаружить это в Chrome (или в другом браузере)? Меня не волнует, если он ошибочно, требует флагов, может записывать только сообщение и т.д., Если он работает во время разработки. Тот факт, что a BaseTexture был уничтожен, может быть извлечен из его свойства source.

Ответ 1

Если целью этого является проверка утечек памяти, то почему вы не можете просто запустить хром-профиль?

Object allocation tracker можно использовать для поиска утечек памяти во время выполнения, а также heap profiler может анализировать графики памяти и сравнивать моментальные снимки, чтобы обнаружить, какие объекты не очищаются с помощью gc.

Также timeline memory view может помочь определить, слишком ли вы слишком часто заставляете сборку мусора, слишком часто выделяя (если это интересно)

Для получения дополнительной информации см.: https://developer.chrome.com/devtools/docs/javascript-memory-profiling

Также не уверен, что это полезно, но если вы хотите посмотреть статистику памяти, тогда вы можете включить информацию о памяти в chrome, выполнив с параметром --enable-memory-info, тогда у вас есть доступ к окнам vars:

window.performance.memory.jsHeapSizeLimit
window.performance.memory.totalJSHeapSize
window.performance.memory.usedJSHeapSize