смешной proc / meminfo в андроиде.Что означает «размер»? - PullRequest
3 голосов
/ 05 декабря 2011

Я копался в использовании памяти в моем приложении.

Итак, чтобы узнать использование памяти, я пишу несколько сценариев, которые запускаются meminfo (каждая строка отображается через 10 секунд)

NativeSize DalvikSize TotalSize
89556   5895    95451
89556   5959    95515
89556   6023    95579
89556   6087    95643
89556   6151    95707
89556   6215    95771
89556   6279    95835

NativeAlloc DalvikAlloc TotalAlloc
13943   3238    17181
15959   3334    19293
16264   3390    19654
16570   3447    20017
16877   3503    20380
17177   3559    20736
17251   3636    20887

NativeFree  DalvikFree  TotalFree
376 2657    3033
8   2625    2633
27  2633    2660
44  2640    2684
26  2648    2674
42  2656    2698
280 2643    2923

NativeFree = NativeSize - NativeAlloc, верно?

И еще один вопрос, NativeSize изменяется, когда мое приложение загружает другую анимацию.Я думаю NativeSize исправлено.

1 Ответ

0 голосов
/ 05 декабря 2011

(до сота):

В adnroid есть две кучи. Dalvik heap и native heap. Данные вашего приложения хранятся в куче Dalvik, за исключением растровых изображений. Для растровых изображений метаданные изображения хранятся в куче Dalvik, но фактические данные пикселей растрового изображения хранятся в собственной куче.

NativeSize - объем памяти, используемый вашим приложением на native heap. Например, если вы загрузите больше изображений, вы увидите, что NativeSize будет расти. Вот почему NativeSize изменяется, когда ваше приложение загружает другую анимацию.

Я думаю, NativeFree, DalvikFree - освобожденные байты, так что это не имеет ничего общего с NativeSize - NativeAlloc.

См. Это для получения дополнительной информации: http://www.youtube.com/watch?v=_CruQY55HOk

...