标签: out-of-memory

将图像加载到Bitmap对象时出现奇怪的内存不足问题

我有一个列表视图,每行有几个图像按钮.单击列表行时,将启动新活动.由于相机布局有问题,我不得不建立自己的标签.为结果启动的活动是地图.如果我单击我的按钮启动图像预览(从SD卡加载图像),应用程序将从活动返回到活动返回到listview结果处理程序以重新启动我的新活动,这只是一个图像小部件.

列表视图上的图像预览正在使用光标和ListAdapter.这使得它非常简单,但我不确定如何放置一个经过调整大小的图像(即小的像素大小不像动态src图像按钮那样.所以我只是调整了从手机摄像头下来的图像.

问题是当我试图返回并重新启动第二个活动时,我收到内存不足错误.

  • 有没有办法我可以轻松地逐行构建列表适配器,我可以在运行中调整大小(有点明智)?

这是更好的,因为我还需要对每行中的小部件/元素的属性进行一些更改,因为焦点问题我无法选择带触摸屏的行.(我可以用滚球.)

  • 我知道我可以做一个带外调整大小并保存我的图像,但这不是我想要做的,但是一些示例代码会很好.

一旦我在列表视图上禁用了图像,它再次正常工作.

仅供参考:这就是我的做法:

String[] from = new String[] { DBHelper.KEY_BUSINESSNAME,DBHelper.KEY_ADDRESS,DBHelper.KEY_CITY,DBHelper.KEY_GPSLONG,DBHelper.KEY_GPSLAT,DBHelper.KEY_IMAGEFILENAME  + ""};
int[] to = new int[] {R.id.businessname,R.id.address,R.id.city,R.id.gpslong,R.id.gpslat,R.id.imagefilename };
notes = new SimpleCursorAdapter(this, R.layout.notes_row, c, from, to);
setListAdapter(notes);
Run Code Online (Sandbox Code Playgroud)

哪里R.id.imagefilenameButtonImage.

这是我的LogCat:

01-25 05:05:49.877: ERROR/dalvikvm-heap(3896): 6291456-byte external allocation too large for this process.
01-25 05:05:49.877: ERROR/(3896): VM wont let us allocate 6291456 bytes
01-25 05:05:49.877: ERROR/AndroidRuntime(3896): Uncaught handler: thread main exiting due to …
Run Code Online (Sandbox Code Playgroud)

android image bitmap out-of-memory android-bitmap

1252
推荐指数
33
解决办法
60万
查看次数

处理"java.lang.OutOfMemoryError:PermGen space"错误

最近我在我的Web应用程序中遇到了这个错误:

java.lang.OutOfMemoryError:PermGen空间

这是在Tomcat 6和JDK 1.6上运行的典型Hibernate/JPA + IceFaces/JSF应用程序.显然,重新部署应用程序几次后就会发生这种情况.

导致它的原因以及可以采取哪些措施来避免它?我该如何解决这个问题?

memory-leaks exception out-of-memory permgen java-6

1215
推荐指数
17
解决办法
102万
查看次数

错误java.lang.OutOfMemoryError:超出了GC开销限制

我在执行JUnit测试时收到此错误消息:

java.lang.OutOfMemoryError: GC overhead limit exceeded
Run Code Online (Sandbox Code Playgroud)

我知道它OutOfMemoryError是什么,但GC开销限制意味着什么?我怎么解决这个问题?

java garbage-collection heap-memory out-of-memory

766
推荐指数
13
解决办法
85万
查看次数

找到一个不是40亿个给定值的整数

这是一个面试问题:

给定一个包含40亿个整数的输入文件,提供一个算法来生成一个未包含在文件中的整数.假设您有1 GB内存.如果您只有10 MB内存,请跟进您的操作.

我的分析:

文件大小为4×10 9 ×4字节= 16 GB.

我们可以进行外部排序,因此我们可以了解整数的范围.我的问题是在排序的大整数集中检测缺失整数的最佳方法是什么?

我的理解(阅读完所有答案后):

假设我们正在讨论32位整数.有2 ^ 32 = 4*10 9个不同的整数.

情况1:我们有1 GB = 1*10 9*8位= 80亿位内存.解决方案:如果我们使用一个代表一个不同整数的位,那就足够了.我们不需要排序.执行:

int radix = 8;
byte[] bitfield = new byte[0xffffffff/radix];
void F() throws FileNotFoundException{
    Scanner in = new Scanner(new FileReader("a.txt"));
    while(in.hasNextInt()){
        int n = in.nextInt();
        bitfield[n/radix] |= (1 << (n%radix));
    }

    for(int i = 0; i< bitfield.lenght; i++){
        for(int j =0; j<radix; j++){
            if( (bitfield[i] & (1<<j)) == 0) System.out.print(i*radix+j);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

情况2:10 MB内存= …

algorithm search file out-of-memory memory-limit

682
推荐指数
24
解决办法
11万
查看次数

什么是StackOverflowError?

什么是什么,是StackOverflowError什么导致它,我应该如何处理它们?

stack-overflow memory-leaks exception-handling out-of-memory

420
推荐指数
10
解决办法
58万
查看次数

如何处理"java.lang.OutOfMemoryError:Java堆空间"错误?

我正在Java 5上编写一个客户端Swing应用程序(图形字体设计器).最近,我遇到了错误,因为我对内存使用情况并不保守.用户可以打开无限数量的文件,程序将打开的对象保存在内存中.经过快速研究后,我在5.0 Java虚拟机中找到了人体工程学,其他人在Windows机器上说JVM默认最大堆大小为.java.lang.OutOfMemoryError: Java heap space64MB

鉴于这种情况,我该如何处理这种约束?

我可以使用java的命令行选项增加最大堆大小,但这需要找出可用的RAM并编写一些启动程序或脚本.此外,增加到一些有限的最大值并不能最终摆脱这个问题.

我可以重写我的一些代码来经常将对象持久化到文件系统(使用数据库是一回事)来释放内存.它可以工作,但它可能也很重要.

如果您可以向我指出上述想法的细节或某些替代方案,如自动虚拟内存,动态扩展堆大小,这将是很好的.

java jvm heap-memory out-of-memory java-ee

395
推荐指数
21
解决办法
123万
查看次数

如何将交换添加到EC2实例?

我目前正在运行一个ec2微实例,我发现实例偶尔耗尽内存.

除了使用更大的实例大小外,还能做些什么呢?

out-of-memory amazon-ec2 amazon-web-services

281
推荐指数
7
解决办法
13万
查看次数

无法在Eclipse中执行dex:GC开销限制

当我下载Git项目OsmAnd并编译它时,Eclipse返回了以下错误:

[Dex Loader] Unable to execute dex: GC overhead limit exceeded
[OsmAnd]     Conversion to Dalvik format failed: 
             Unable to execute dex: GC overhead limit exceeded
Run Code Online (Sandbox Code Playgroud)

谷歌和#2说,我必须改变-Xms40m -Xmx384meclipse.ini. 转换为Dalvik格式失败:无法执行dex:Java堆空间.
我清理了项目并重新启动了Eclipse,但它没有帮助.

我找到了这个链接:Android开发人员的提示:"转换为Dalvik格式失败:无法执行dex:null" 但我不知道哪个.jar从我的项目中更改输入.如果有人可以提供帮助,我可以将项目发送到他们.

java android out-of-memory dalvik

211
推荐指数
4
解决办法
11万
查看次数

Spark java.lang.OutOfMemoryError:Java堆空间

我的集群:1个主服务器,11个从服务器,每个节点有6 GB内存.

我的设置:

spark.executor.memory=4g, Dspark.akka.frameSize=512
Run Code Online (Sandbox Code Playgroud)

这是问题所在:

首先,我从HDFS到RDD读取了一些数据(2.19 GB):

val imageBundleRDD = sc.newAPIHadoopFile(...)
Run Code Online (Sandbox Code Playgroud)

其次,在这个RDD上做点什么:

val res = imageBundleRDD.map(data => {
                               val desPoints = threeDReconstruction(data._2, bg)
                                 (data._1, desPoints)
                             })
Run Code Online (Sandbox Code Playgroud)

最后,输出到HDFS:

res.saveAsNewAPIHadoopFile(...)
Run Code Online (Sandbox Code Playgroud)

当我运行我的程序时,它显示:

.....
14/01/15 21:42:27 INFO cluster.ClusterTaskSetManager: Starting task 1.0:24 as TID 33 on executor 9: Salve7.Hadoop (NODE_LOCAL)
14/01/15 21:42:27 INFO cluster.ClusterTaskSetManager: Serialized task 1.0:24 as 30618515 bytes in 210 ms
14/01/15 21:42:27 INFO cluster.ClusterTaskSetManager: Starting task 1.0:36 as TID 34 on executor 2: Salve11.Hadoop (NODE_LOCAL)
14/01/15 21:42:28 INFO …
Run Code Online (Sandbox Code Playgroud)

out-of-memory apache-spark

208
推荐指数
9
解决办法
21万
查看次数

Node.js堆内存不足

今天我运行我的脚本进行文件系统索引以刷新RAID文件索引,并在4小时后崩溃并出现以下错误:

[md5:]  241613/241627 97.5%  
[md5:]  241614/241627 97.5%  
[md5:]  241625/241627 98.1%
Creating missing list... (79570 files missing)
Creating new files list... (241627 new files)

<--- Last few GCs --->

11629672 ms: Mark-sweep 1174.6 (1426.5) -> 1172.4 (1418.3) MB, 659.9 / 0 ms [allocation failure] [GC in old space requested].
11630371 ms: Mark-sweep 1172.4 (1418.3) -> 1172.4 (1411.3) MB, 698.9 / 0 ms [allocation failure] [GC in old space requested].
11631105 ms: Mark-sweep 1172.4 (1411.3) -> 1172.4 (1389.3) MB, 733.5 / 0 …
Run Code Online (Sandbox Code Playgroud)

javascript crash heap-memory out-of-memory node.js

195
推荐指数
18
解决办法
19万
查看次数