6.2 性能优化

Posted qkeyar

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了6.2 性能优化相关的知识,希望对你有一定的参考价值。

1) 拒绝在 Bitmap 上浪费你的内存:只在需要显示的时候加载到内存里或者通过缩放原图来减小内存占用。

2) 使用优化后的数据容器:请使用 Andorid 框架中优化过的数据容器,例如 SparseArray,SparseBooleanArray 和 LongSparseArray。类似于 HashMap 这一类的容器的效率不是很高,因为在每个 Map 中对于每一次的存放数据,他都需要独立一个单独的 Entry 对象进行传芳。而 SparseArray 由于禁止系统自动封装键值对,因此他更加有效率。并且你不需要担心丢失掉原有信息。

3) 小心内存花销

  •  枚举与静态常量相比,通常会消耗两倍的内存资源,因此你应该尽量避免使用枚举类型
  •  Java 中的每一个类(包括匿名内部类),都会消耗大约500比特内存
  •  每一个类对象都会消耗12-16比特内存
  •  把单个 Entry 放入 HashMap 需要多消耗32比特的内存

4) 抽象方法可能带来很多的额外花费,例如当他们执行的时候,他们拥有大量的代码,并且他们会被多次映射到内存中占用更多的内存。

5) 避免依赖注入框架:使用类似于 Guice 和 RoboGuice 的依赖注射框架,或许会使你的代码变得更加漂亮,但是,这些框架在初始化的时候会因为注释而消耗大量的工作在扫描你的代码上,这会让你的代码在进行内存映射的时候花费更多的资源。虽然这些内存能够被android 进行回收,但是等待整个分页被释放需要很长一段时间。

6) 小心使用外部依赖包。

以上是关于6.2 性能优化的主要内容,如果未能解决你的问题,请参考以下文章

优化性能和优化内存有啥区别?

性能优化工具-MAT的使用

Mysql语句及优化

Mysql索引及优化

性能优化

iOS性能优化总结