В любом случае мы можем отслеживать события GC, как это происходит в Android?
В Java я считаю, что мы можем слушать события http://www.fasterj.com/articles/gcnotifs.shtml Но API-интерфейсы java.lang.management недоступны в Android.
В любом случае мы можем отслеживать события GC, как это происходит в Android?
В Java я считаю, что мы можем слушать события http://www.fasterj.com/articles/gcnotifs.shtml Но API-интерфейсы java.lang.management недоступны в Android.
Зачем вам этот слушатель. Если вы просто хотите узнать, не закончилось ли ваше приложение, просто проверьте это:
Освободить память, когда память становится плотной.
На любом этапе жизненного цикла приложения обратный вызов onTrimMemory() также сообщает вам, когда общая память устройства становится низкой. Вы должны ответить путем дальнейшего освобождения ресурсов на основе следующих уровней памяти, предоставляемых onTrimMemory():
TRIM_MEMORY_RUNNING_CRITICAL Ваше приложение все еще работает, но система уже убила большинство процессов в кеше LRU, поэтому теперь вы должны освободить все некритические ресурсы. Если система не может вернуть достаточное количество ОЗУ, она очистит весь кеш LRU и начнет процессы уничтожения, которые система предпочитает поддерживать в режиме реального времени, например, те, где размещен хостинг. Кроме того, когда ваш процесс приложения кэшируется, вы можете получить один из следующих уровней из onTrimMemory():
TRIM_MEMORY_BACKGROUND Система работает на низкой памяти, и ваш процесс близок к началу списка LRU. Хотя процесс вашего приложения не подвергается высокому риску быть убитым, система может уже убивать процессы в кеше LRU. Вы должны освободить ресурсы, которые легко восстановить, поэтому ваш процесс останется в списке и быстро возобновится, когда пользователь вернется в ваше приложение.
Вот ссылка https://developer.android.com/training/articles/memory.html
Хорошо, это будет отличаться как от далвика, так и от искусства.
в основном вы можете указать оболочке adb для записи событий GC в файле трассировки.
art: https://source.android.com/devices/tech/dalvik/gc-debug.html
Это могут быть и те же команды adb как для искусства, так и для dalvik.
Инструмент мониторинга памяти подключается к этому, когда он отображает графическую карту памяти для вас в студии Android.
Прогматически, вероятно, сложнее. Посмотрите, как FB выполнил свою производительность, поскольку я считаю, что они делают подсчеты GC-событий с родной C/С++-стороны и сопоставляют их в flatbuffer для своего кода инструмента профилирования боковой стороны Java доступ..