Androidi性能优化之高效使用内存

简介:

应用生存期的绝大多数时间都在用于处理内存中的数据

性能主要取决于以下三个因素:

  a:CPU如何操作特定的数据类型

  b: 数据和指令需要占用多少存储空间

  c: 数据在内存中的布局

 

访问内存:

  因为访问内存会产生一些开销,CPU会把最近访问的内存内容缓存起来,无论是内存读还是内存写,事实上,CPU通常使用两级缓存:

  a:一级缓存(L1)

  b:二级缓存(L2)

  有些处理器可能还有3级缓存

 

垃圾回收:

  Java的一个非常重要的优点是垃圾收集,有两件非常重要的事情值得注意:

  a:还是有可能存在内存泄露

  b:垃圾回收器会帮你管理内存,它做的不仅仅是释放不用的内存。

 

内存泄露分析工具:

  a:DDMS视图:Heap以及Allocation Tracker 跟踪内存使用和分配情况

  b:Eclipse内存分析器:MAT ,地址www.eclipse.org/mat

  c:Android 2.3定义的StrictMode类,对检测潜在的内存泄露有很大帮助。

 

引用:

  Java定义了4中类型的引用:

  a:强(Strong)

  b:软(Soft)

  c:弱(Weak)

  d:虚(Phantom)

  软引用和弱引用在本质上是相似的,它们没有强到足以保持对象不被删除(或回收)的引用。不同之处在于回收时,垃圾回收器处理它们的引用的对象的积极程度不同。

  对象是软可及的,即存在一个软引用,但没有强引用,当有足够的内存保留对象时,垃圾回收器不会回收它。不过如果垃圾会收器决定需要回收更多的内存,那么它可任意回收软可及对象的内存,这种引用类型适用于缓存,它可以自动删除缓存中的条目。

提示:当使用缓存时,确保你了解它使用的是什么类型的引用,例如Android的LruCache使用强引用。

  若可及对象,也就是说,存在一个弱引用,但没有强或软引用,下次垃圾回收时基本会被收走,换而言之,垃圾回收器更加积极地回收弱可及对象的内存。这种类型的引用适用于映射,这种映射可以自动删除不再被引用的键,WeakHashMap类就是这么做的。

  虚引用最弱,几乎很少用到。

本文转自demoblog博客园博客,原文链接http://www.cnblogs.com/0616--ataozhijia/p/3649427.html如需转载请自行联系原作者


demoblog

相关文章
|
3月前
|
存储 缓存 Java
Java性能优化: 如何减少Java程序的内存占用?
Java性能优化: 如何减少Java程序的内存占用?
243 2
|
1月前
|
监控 Java Android开发
构建高效Android应用:从内存管理到性能优化
【2月更文挑战第30天】 在移动开发领域,打造一个流畅且响应迅速的Android应用是每个开发者追求的目标。本文将深入探讨如何通过有效的内存管理和细致的性能调优来提升应用效率。我们将从分析内存泄露的根本原因出发,讨论垃圾回收机制,并探索多种内存优化策略。接着,文中将介绍多线程编程的最佳实践和UI渲染的关键技巧。最后,我们将通过一系列实用的性能测试工具和方法,帮助开发者监控、定位并解决性能瓶颈。这些技术的综合运用,将指导读者构建出更快速、更稳定、用户体验更佳的Android应用。
|
5月前
|
存储 缓存 NoSQL
Linux内存性能优化总结,让你的系统更加高效!(下)
Linux内存性能优化总结,让你的系统更加高效!
|
5月前
|
存储 缓存 Linux
Linux内存性能优化总结,让你的系统更加高效!(上)
Linux内存性能优化总结,让你的系统更加高效!
|
8月前
|
存储 Java
探究 Java JVM 老年代:垃圾回收、内存管理与性能优化
在 Java 虚拟机(JVM)内存管理中,老年代是一个关键的部分,用于存储较长时间存活的对象。了解老年代的垃圾回收策略、内存管理方式以及性能优化方法,对于构建高性能、稳定的 Java 应用至关重要。本文将深入探讨老年代的原理、垃圾回收策略和性能优化,助您更好地掌握 JVM 内存管理。
|
9月前
|
存储 缓存 NoSQL
二十一、Linux性能优化实战学习笔记- 如何“快准狠”找到系统内存的问题?
已用内存、剩余内存、共享内存、可用内存、缓存和缓冲区的用量。
95 0
|
9月前
|
存储 缓存 BI
|
9月前
|
存储 缓存 算法
十五、Linux性能优化实战学习笔记 - Linux内存是怎么工作的
内存管理也是操作系统最核心的功能之一。内存主要用来存储系统和应用程序的指令、数据、缓存等
223 1
|
10月前
|
前端开发 JavaScript Java
移动端性能优化:减少应用的加载时间和内存占用
移动应用的性能对用户体验至关重要。在移动设备上,加载时间和内存占用是两个主要的性能指标。本文将介绍一些有效的技术和策略,帮助开发人员优化移动应用的加载时间并减少内存占用,以提升应用的性能和响应速度。
173 0
|
11月前
|
存储 缓存 JSON
带你读《Elastic Stack 实战手册》之84:——4.3.3.Elasticsearch 性能优化之内存和熔断浅析(上)
带你读《Elastic Stack 实战手册》之84:——4.3.3.Elasticsearch 性能优化之内存和熔断浅析(上)
303 0
带你读《Elastic Stack 实战手册》之84:——4.3.3.Elasticsearch 性能优化之内存和熔断浅析(上)

热门文章

最新文章