Questions tagged «out-of-memory»

当程序请求无法满足的内存请求时抛出的错误或异常。

30
将图像加载到位图对象时出现内存不足问题
我有一个列表视图,每行都有几个图像按钮。当您单击列表行时,它将启动一个新活动。由于相机布局存在问题,我不得不构建自己的标签。为结果而启动的活动是地图。如果单击我的按钮以启动图像预览(将图像从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); 哪里R.id.imagefilename是ButtonImage。 这是我的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 …



30
生成一个整数,该整数不在给定的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 …


19
如何处理“ java.lang.OutOfMemoryError:Java堆空间”错误?
我正在Java 5上编写客户端Swing应用程序(图形字体设计器)。最近,我遇到了错误,因为我对内存的使用并不保守。用户可以打开无限数量的文件,并且程序将打开的对象保留在内存中。经过快速研究,我在5.0 Java虚拟机中发现了人机工程学,其他人则说在Windows计算机上,JVM默认将最大堆大小设置为。java.lang.OutOfMemoryError: Java heap space64MB 在这种情况下,我应该如何处理这种限制? 我可以使用java的命令行选项来增加最大堆大小,但这需要找出可用的RAM并编写一些启动程序或脚本。此外,增加到某个有限的最大值并不能最终解决这个问题。 我可以重写一些代码以将对象频繁地持久保存到文件系统(使用数据库是同一回事)以释放内存。它可以工作,但是可能也很多。 如果您可以将上述想法的细节或诸如自动虚拟内存,动态扩展堆大小之类的替代方法的细节介绍给我,那将会很棒。


22
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: …

12
Spark java.lang.OutOfMemoryError:Java堆空间
我的集群:1个主机,11个从机,每个节点有6 GB内存。 我的设置: spark.executor.memory=4g, Dspark.akka.frameSize=512 这是问题所在: 首先,我从HDFS到RDD读取了一些数据(2.19 GB): val imageBundleRDD = sc.newAPIHadoopFile(...) 其次,在此RDD上执行以下操作: val res = imageBundleRDD.map(data => { val desPoints = threeDReconstruction(data._2, bg) (data._1, desPoints) }) 最后,输出到HDFS: res.saveAsNewAPIHadoopFile(...) 当我运行程序时,它显示: ..... 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: …

9
无法执行dex:Eclipse中超出了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 谷歌和#2说,我必须改变-Xms40m -Xmx384m在eclipse.ini。 转换为Dalvik格式失败:无法执行dex:Java堆空间。 我清理了项目并重新启动了Eclipse,但是它没有帮助。 我找到了此链接:针对Android开发人员的提示:“转换为Dalvik格式失败:无法执行dex:null” 但是我不知道.jar从项目中更改输入内容。如果有人可以帮助,我可以将项目发送至他们。

13
java.lang.OutOfMemoryError:位图大小超出VM预算-A​​ndroid
我开发了一个在Android上使用大量图像的应用程序。 该应用程序运行一次,填满屏幕(上的信息Layouts,Listviews,Textviews,ImageViews,等)和用户读取的信息。 没有动画,没有特效或任何可以填满内存的东西。有时可绘制对象可以更改。有些是android资源,有些是保存在SDCARD文件夹中的文件。 然后,用户退出(该onDestroy方法被执行,并且应用程序由VM保留在内存中),然后在某个时候用户再次进入。 每次用户进入该应用程序时,我都会看到内存越来越多,直到用户获得java.lang.OutOfMemoryError。 那么处理许多图像的最佳/正确方法是什么? 我应该将它们放在静态方法中,这样就不会一直加载它们吗?我是否必须以特殊方式清洁版面或版面中使用的图像?

3
应用程序可以使用的最大RAM数量是多少?
我对这个与Android操作系统的内存管理有关的问题非常好奇,因此我希望就该主题提供一个非常详细的答案。 我想知道的是: Android应用程序(不是系统应用程序)可以使用的最大内存量(兆字节 / 占总RAM的百分比)是多少? Android版本之间有什么区别吗? 关于设备制造商有什么区别吗? 最重要的是: 什么被视为/ 这是什么取决于当它涉及到系统中确定多少内存的应用程序可以在运行时使用(假设每个应用程序的内存最大是不是一个静态的数字)? 到目前为止(截至2013年)我所听到的: 早期的Android设备的每个应用上限为16MB 后来这个上限增加到24MB或32MB 是什么让我非常好奇: 这两个限制都非常低。 我刚刚下载了Android任务管理器,以检查设备的RAM。我注意到的是,有些应用程序使用大约40-50 MB的RAM,这比上面提到的最大RAM使用量(例如32 MB)要明显得多。那么Android如何确定一个应用可以使用多少RAM?应用程序怎么可能超过该限制? 此外,我注意到当使用大约30-40 MB时,我的一些应用程序崩溃了(被系统杀死了?),并带有OutOfMemoryException。另一方面,一段时间后(可能是由于内存泄漏),我的手机上使用的应用程序使用的内存为100 MB以上,并且不会崩溃或消失。因此,在确定可以保留多少RAM时,显然还取决于应用程序本身。这怎么可能?(我使用具有768 MB RAM的HTC One S进行了测试) 免责声明:我不以任何方式与Android Task Manager应用关联。

2
.NET框架如何为OutOfMemoryException分配内存?
在C ++中,实际上可以按值引发异常,而无需在堆上分配内存,因此这种情况很有意义。但是在.NET Framework OutOfMemoryException中,它是一种引用类型,因此它是在堆上分配的。OutOfMemoryException当没有足够的内存来创建新对象时,.NET Framework如何分配内存?
144 c#  .net  out-of-memory 

13
“ java.lang.OutOfMemoryError:无法创建新的本机线程”
"java.lang.OutOfMemoryError : unable to create new native Thread32k线程后,我们在8GB RAM VM上获得了“”(ps -eLF | grep -c java) 但是,"top" and "free -m" shows 50% free memory available。JDk是64位的,并已在HotSpot和JRockit上试用过。服务器具有Linux 2.6.18 我们还尝试了OS stack size (ulimit -s)调整和最大进程(ulimit -u)限制,limit.conf增加了,但是都是徒劳的。 我们还尝试了几乎所有可能的堆大小组合,将其保持为低,高等。 我们用来运行应用程序的脚本是 /opt/jrockit-jdk1.6/bin/java -Xms512m -Xmx512m -Xss128k -jar JavaNatSimulator.jar /opt/tools/jnatclients/natSimulator.properties 谢谢回复。 我们已经尝试编辑/etc/security/limits.conf和ulimit,但是仍然一样 [root@jboss02 ~]# ulimit -a core file size (blocks, …

7
java.lang.OutOfMemoryError:Maven中的Java堆空间
当我运行Maven测试时,发生java.lang.OutOfMemoryError。我在Google上搜索了解决方案,并尝试了export MAVEN_OPTS=-Xmx1024m,但没有成功。任何人都知道此问题的其他解决方案,顺便说一句,我正在使用Maven 3.0 提前致谢 运行“ mvn test -e”时,将错误消息粘贴到此处 测试失败: 警告(junit.framework.TestSuite $ 1) testDefaultPigJob_1(com.snda.dw.pig.impl.DefaultPigJobLocalTest) testDefaultPigJob_2(com.snda.dw.pig.impl.DefaultPigJobLocalTest) 测试运行:11,失败:3,错误:0,跳过:0 01/10/11 13:37:18信息executionengine.HExecutionEngine:连接到hadoop fi 文件系统位于:file:/// [INFO] ----------------------------------------------- ------------------------- [INFO]建立失败 [INFO] ----------------------------------------------- ------------------------- [INFO]总时间:30.063s [INFO]完成于:太平洋夏令时间2010年11月1日星期一13:37:18 [INFO]最终内存:3M / 6M [INFO] ----------------------------------------------- ------------------------- [错误]无法执行目标org.apache.maven.plugins:maven-surefire-plugin:2。 项目dw.pig上的5:test(默认测试):有测试失败。 [错误] [错误]请参阅E:\ Code \ Java \ workspace \ dw.pig \ target \ surefire-reports fo …

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.