我稍微思考了一下

之前一直OOM可能是因为我为了复用输入流而用BufferInputStream复制了URLConnection开的InputStream而且在写缓存的时候还用BufferOutputStream来写出结果导致在写出缓存的时候光IO流就占了几乎三倍与图片本身大小的内存再加上加载的都是大图于是连一屏三张图片都加载不完内存就在写出磁盘缓存的时候爆了。

我说怎么跟说好的不一样OOM不是在读取图片并显示的时候发生而是每次都在DiskLruCache写出缓存的时候发生的呢。

嗯……

时间: 2024-11-04 00:29:47

我稍微思考了一下的相关文章

通过图片对比带给你不一样的KMP算法体验

KMP 算法,俗称“看毛片”算法,是字符串匹配中的很强大的一个算法,不过,对于初学者来说,要弄懂它确实不易. 笔者认为,KMP 算法之所以难懂,很大一部分原因是很多实现的方法在一些细节的差异.体现在几个方面: next 数组,有的叫做“失配函数”,其实是一个东西: next 数组中,有的是以下标为 0 开始的,有的是以 1 开始的: KMP 主算法中,当发生失配时,取的 next 数组的值也不一样!就这样,各说各的,乱的很! 所以,在阐述我的理解之前,我有必要说明一下,我是用 next 数组的,

hdu 1159 Common Subsequence(dp 最长公共子序列问题LCS)

最长公共子序列问题(LCS,Longerst Common Subsequence). s1s2……si+1和t1t2……tj+1的公共子序列可能是: ①当si+1=tj+1时,在s1s2……si+1和t1t2……tj+1的公共子序列末尾追加一个. ②s1s2……si+1和t1t2……tj的公共子序列 ③s1s2……si和t1t2……tj+1的公共子序列 所以易得到递推关系dp[i+1][j+1]=  max{ dp[i][j]+1 , dp[i][j+1] , dp[i+1][j]) }  

寻找数组中出现次数超过一半的数字

[题 目]数组中有一个数字的出现次数超过了该数组长度的一半,找出这个数字. [思 路1]由于要寻找的数字的出现次数超过了数组长度的一半,所以如果将该数组排序,那么它的中位数必然是我们要寻找的数字,所以我们的任务就是对该数组进行排序,而性能最好的快速排序的时间复杂度为O(nlogn),我们可以直接借助库函数完成,由于其效率不是很高,所以这里就不再赘述. [思 路2]对于一个数组中的元素的次数的统计,最快的查找方法是什么?当然哈希表了!我们能不能建立哈希表呢,稍微思考,我们就可以发现,哈希表只适用于

点燃圣火! Ember.js 的初学者指南

转自:http://www.adobe.com/cn/devnet/html5/articles/flame-on-a-beginners-guide-to-emberjs.html 作者 Andy Matthews 现在,到处都可以看到复杂的 JavaScript 应用程序. 由于这些应用程序变得越来越复杂,一长串的 jQuery 回调语句,或者通过应用程序在各个点执行不同的函数调用,这些都变得无法再让人接受. 这导致了 JavaScript 开发人员了解到传统的软件程序员已经知道了几十年的问

经典算法详解(2):费氏数列

说明: Fibonacci为1200年代的欧洲数学家,在他的著作中曾经提到:若有一只免子每个月生一只小免子,一个月后小免子也开始生产.起初只有一只免子,一个月后就有两只免子,二个月后有三只免子,三个月后有五只免子(小免子投入生产)....... 如果不太理解这个例子的话,举个图就知道了,注意新生的小免子需一个月成长期才会投入生产,类似的道理也可以用于植物的生长,这就是Fibonacci数列,一般习惯称之为费氏数列,例如以下: 1.1 .2.3.5.8.13.21.34.55.89...... 分

Mansory算法分析

相信大家对mansory排版算法印象十分深刻,它能够十分有效的实现页面紧凑排版,节省空间,并且还显得十分美观.在很多网站,包括鼎鼎有名的pinterest都使用了这个算法来实现排版.这个过程有点象瓦匠在码砖头,所以我会有时候称这些div为brick(砖头),容器为墙面! 有一个现象不知道大家注意否,这个排版的方法对于输入是很敏感的.所谓的输入就是指需要进行排版的div块.进一步说对于不同的输入,结果可能是大相迳庭的.这个不同可以从两个方面来定义:第一,顺序的不同:第二,大小的不同.这个只需要稍微

五子棋AI的思路

隔了一年才把AI思路给写了... 需求分析与设计方案:http://www.cnblogs.com/songdechiu/p/4951634.html 如需整个工程,移步http://download.csdn.net/detail/sdzuiaidanpianji/9452789 注:全文,都默认以黑方为己方. 一.五子棋基本棋型 参考资料:http://game.onegreen.net/wzq/HTML/142336.html 最常见的基本棋型大体有以下几种:连五,活四,冲四,活三,眠三,

IOS的APNS和PushKit门道详述

基本功 iOS在诞生之初为了最大程度的保证用户体验,做了一些高瞻远瞩且影响深远的设计.APNs(Apple Push Notification service)就是其中一项. 早期iOS设备的内存和CPU资源都很有限,为了让前台活跃的app拥有尽可能多的系统资源,以及节约设备电量,iOS一开始就“不允许”普通app的进程常驻后台.这个决定很大程度上保障了用户体验和延长了手机的待机时间,但app的开发商需要和他们的用户保持联系.开发商需要有一个稳定的网络通道能每隔一段时间推送新的内容到用户设备.A

Java编程思想重点笔记

首先声明转自https://github.com/lanxuezaipiao/ReadingNotes 无意中发现便转了过来.. 1. Java中的多态性理解(注意与C++区分) Java中除了static方法和final方法(private方法本质上属于final方法,因为不能被子类访问)之外,其它所有的方法都是动态绑定,这意味着通常情况下,我们不必判定是否应该进行动态绑定—它会自动发生. final方法会使编译器生成更有效的代码,这也是为什么说声明为final方法能在一定程度上提高性能(效果