zoukankan      html  css  js  c++  java
  • android:largeHeap介绍

            每个程序都很大的内存可以使用,在使用前,你要明白你真的需要这么多的内存吗?在3.0以后程序就有largeHeap选项,如果为true,程序可以使用256M(我的设备),可以通过ActivityManager.getMemoryClass(()获取,为false 程序可使用内存为64(我的设备),可以通过getMemeryClass()获取,在网上找了些资料:

    
–G1: 16MB

    
–Droid: 24MB


    – Nexus One: 32MB

    – Xoom: 48MB

    我的的设备是:tab 2,获取的是64M,但在使用时遇到下面错误:

    也就是说只有30M可以使用。具体是什么原因我没有再研究。

    内存分配原则:刚开始系统会给你程序分配上限是已经使用的内存的一倍左右,当不够用时慢慢调整上限,当超过一定的使用量时,会大幅度调整上限,我在测试时,在64以下调整很小,当使用量超过64M时,系统把内存上限调直接整到了100M以上。前提是在设置 Honeycomb adds “largeHeap” 选项后

    3.0以前GC操作需要很长时间,以常大于100ms,在执行GC时,程序就会出现卡的现象,3.0以后GC执行的时间通常在5ms以内,在以3.0以前的版本中,加载图片时,系统把bitmaps加载到Native中,并不受GCt管理,需要手机释放,不然会遇到莫名奇妙的内存问题。3.0以后Bitmaps直接放到内存中在执行GC时,会及时清理无用的Bitmaps所占的内存,在初始化图片时把图片放到内存中,当加载完后,系统会把图片从内存转移到显存中,当你用内存测试工具时,会发现,在加载图片时,内存占用率很高,当加载完成后,内存使用量突然下来,当加载大量图片时会发现这种情况

  • 相关阅读:
    Crawling Computing Ranking 很长时间, 怎么办?
    明月外,净红尘
    数据库人员面试:SQL Server常用测试题
    华山人物志——苏颖超
    安全性和 XML Web services
    聚簇索引与非聚簇索引的区别以及SQL Server查询优化技术
    SQL2000里的数据类型
    [精华] 数据库的查询优化技术
    深入浅出理解索引结构
    XSL
  • 原文地址:https://www.cnblogs.com/lechance/p/4373151.html
Copyright © 2011-2022 走看看