性能优化

Q:常用内存命令有哪些?

  • USS Unique Set Size 物理内存 进程独占的内存 PSS Proportional Set Size 物理内存 PSS= USS+ 按比例包含共享库
  • RSS Resident Set Size 物理内存 RSS= USS+ 包含共享库
  • VSS Virtual Set Size 虚拟内存 VSS= RSS+ 未分配实际物理内存
  • dumpsys meminfo //dumpsys meminfo –package // 输出指定包名的进程,可能包含多个进程 适用场景: 查看进程的oom adj,或者dalvik/native等区域内存情况,或者某个进程或apk的内存情况,功能非常强大;
  • procrank //适用场景: 查看进程的VSS/RSS/PSS/USS各个内存指标;
  • cat /proc/meminfo //适用场景: 查看系统的详尽内存信息,包含内核情况;
  • free //适用场景: 只查看系统的可用内存;
  • showmap //适用场景: 查看进程的虚拟地址空间的内存分配情况;
  • vmstat //适用场景: 周期性地打印出进程运行队列、系统切换、CPU时间占比等情况

Q:启动优化?

  • attachBaseContext
  • Application attach
  • installContentProviders
  • Application onCreate
  • Looper.loop
  • Activity onCreate,onResume