Fresco 是 facebook 在今年的 F8 大会上宣布开源的一个用于加载图片的库,它不仅支持多种图片文件格式,而且由于使用了pinned purgeables 技术,使得大图加载过程中产生OOM的概率大大降低。...
分类:
其他好文 时间:
2015-04-16 23:44:24
阅读次数:
324
最近在利用poi往excel中写入大量数据时,发现excel2003最多只支持65535条,大量数据时容易造成oom,上网查了一下api,发现目前对于2003,每个sheet最多支持65535条,若数据量远超65535,建议分sheet处理,而poi3.8之后,出现了SXSSFWorkbook,.....
分类:
编程语言 时间:
2015-04-14 22:51:20
阅读次数:
4330
上图是一张Java运行时的内存分布图,可知虚拟机内存都有发生OutOfMemoryError(下文称 OOM)异常的可能,作为一个合格的Java开发人员,我们应该做到的是:(1)第一,通过代码验证 Java 虚拟机规范中描述的各个运行时区域储存的内容;
(2)第二,遇到内存溢出的时候,应该可以找打具体的位置,并进行合理的解决;下边就聊一下 OOM:一、Java 堆溢出我们知道Java 堆用于储存对...
分类:
编程语言 时间:
2015-04-14 19:47:14
阅读次数:
216
一、在 Java 虚拟机规范中,对虚拟机栈这个区域规定了两种异常状况:(1)如果线程请求的栈深度大于虚拟机所允许的深度,将抛出StackOverflowError 异常;
(2)如果虚拟机栈可以动态扩展(当前大部分的 Java 虚拟机都可动态扩展,只不过 Java 虚拟机规范中也允许固定长度的虚拟机栈),当扩展时无法申请到足够
的内存时会抛出 OutOfMemoryError 异常。
(3)与...
分类:
编程语言 时间:
2015-04-14 19:45:14
阅读次数:
282
如果要向运行时常量池中添加内容,最简单的做法就是使用 String.intern()这个 Native 方法。该方法的作用是:如果池中已经包含一个等于此 String 对象的字符串,则返回代表池中这个字符串的String 对象;否则,将此 String 对象包含的字符串添加到常量池中,并且返回此 String 对象的引用。由于常量池分配在方法区内,我们可以通过-XX:PermSize 和-XX:Ma...
分类:
编程语言 时间:
2015-04-14 19:44:21
阅读次数:
153
前言:在手机中图片一般都是指Bitmap图片,为什么要说Bitmap呢?因为大家在开发应用的时候,都会使用一些图片来表现UI,用户也喜欢看图片,看文字获取信息太慢并且不直观,如果美工设计的好,看图片基本上不怎么看你的文字内容就知道你要表达什么,例如所有的购物网站都会编辑很多商品的配图来呈现给用户,由此可见图片在应用程序中的常见和重要。只要说到图片就不能离开如何避免OOM这个主题,因为在处理很多图片...
分类:
其他好文 时间:
2015-04-14 09:56:25
阅读次数:
180
众所周知,每个Android应用程序在运行时都有一定的内存限制,限制大小一般为16MB或24MB(视平台而定)。因此在开发应用时需要特别关注自身的内存使用量,而一般最耗内存量的资源,一般是图片、音频文件、视频文件等多媒体资源;由于Android系统对音频、视频等资源做了边解析便播放的处理,使用时并不...
分类:
移动开发 时间:
2015-04-13 16:25:11
阅读次数:
157
简介:LRU(LeastRecentlyUsed)最近最少使用页面置换算法,一种内存缓存机制。内部底层可以使用数组实现。因为手机分配给每一个程序的大小是固定的。 为什么要用:程序的运行所需的内存空间超过手机分配的空间时,就会发生oom(outofmenory)。所以会有一些保持内存大小的机制,...
分类:
其他好文 时间:
2015-04-13 16:18:51
阅读次数:
155
最近写的一个应用涉及到使用GridView显示图片,当使用BaseAdapter传统的的实现时,在真机上快速滚动时会出现OOM情况。
一个临时性的解决方案就是改动图片尺寸,减小内存。这种方法简单却不安全。如果图片够多,也存在依然OOM的情况。
一个有效的方法就是使用异步加载。获取应用程序最大可用内存: int maxMemory = (int) Runtime.getRuntime().maxM...
分类:
移动开发 时间:
2015-04-13 09:33:28
阅读次数:
194