求解 out of outofmemoryerror

您的当前位置: > 正文
我的世界out of memory怎么解决
来源:作者:ppcat
我的世界out of memory怎么解决?相信一些同学玩了一段时间的minecraft之后,会提示出out of memory的字眼,这是什么原因呢?下面我们来看看。
答:其实这样是minecraft的一个弊端,采用java的后果,很容易造成内存的溢出,这时候我们应该给予足够的内存空间,右击我电脑-高级-性能 设置-高级-更改虚拟内存-设置D盘小和大电脑内存1.52倍,这样问题就不大了。
(window.slotbydup=window.slotbydup || []).push({
id: '864236',
container: s,
size: '250,120',
display: 'inlay-fix'38302人阅读
&最近有读者在使用Matlab过程中遇到了&out of memory&的问题。在matlab中此类问题非常常见,我也遇到过很多。一般来说,使用的矩阵的维数一旦过万,我就会双手合十,祈祷上苍,保佑我的内存赢得最终胜利。在网上也有很多介绍防止这类问题的帖子或文章,我也试过很多,有的还行,有的貌似没啥用。此篇博客只是总结总结个人的经验而已,希望对大家有所帮助。
解决办法 1:打开计算机的3GB开关。
这是我用过的所有方法中最行之有效的一个。我的电脑虽然配置的内存是3GB,但受XP系统的限制,实际上分配给应用程序的内存很小很小。所以我们需要打开计算机的3GB开关。具体做法是:
右键点击我的电脑 -& 属性 -& 高级 -& 启动和故障恢复 -& 设置 -& 编辑。
进入boot.int,将你的系统名
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS=&Microsoft Windows XP Professional &
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS=&Microsoft Windows XP Professional
with 3GB switche& /3gb
重新启动,效果立现,在matlab中输入feature('memstats'),可以看到现在的实际内存已经变为了3GB。
解决办法 2:使用pack
在matlab中,对于非稀疏的矩阵而言,只有整块的内存才能够被使用。比如你有两块内存,一块500M,一块200M,而矩阵所需的空间要600M,即使500+200&600,可你还是不能正常运行。而pack即为内存碎片的拼接方法。
所以,最好让matlab程序分段运行,在每一段运行前,在matlab命令行中敲入&pack&。如下图所示:
可以将小内存碎片充分利用起来,积少成多,缓解内存危机。
解决办法 3:及时释放不用的变量
用很多变量以后用不到,或暂时用不到。对于前者,可以微微一笑,直接clear掉,眼睛都不带眨的。而对于后者,可以先将其存入文件然后clear,待到用时再load进来即可。
解决办法 4:采用稀疏矩阵
对于0很多的矩阵,尽量采用稀疏矩阵的方式存储。
如果上述办法都没有用的话,就只能在自己程序中找找原因了,看看能不能改改程序结构,或者让矩阵分次处理。
如果还不行。。。。。。那只有双手合十了^_^
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:84505次
排名:千里之外
原创:12篇
评论:92条
(1)(2)(1)(1)(2)(1)(1)(2)(1)(1)(1)(1)(2)503: Service Unavailable
503: Service Unavailable
访问太频繁了,服务器要炸。参考网址:/questions/477572/android-strange-out-of-memory-issue-while-loading-an-image-to-a-bitmap-object从外部读入图片的方法:1. FileInputStream is = new FileInputStream(imageDir);&& Drawable image = Drawable.createFromStream(is, null);2. Drawable image = Drawable.createFromPath(imageDir);由于图片多大,上面两种用法都会产生内存溢出的问题。解决方法如下:File imageFile = new File(imageDir);Drawable image = decodeFile(imageFile);&private Drawable decodeFile(File f) {&&&&&&& try {&&&&&&&&&&& // Decode image size&&&&&&&&&&& BitmapFactory.Options o = new BitmapFactory.Options();&&&&&&&&&&& o.inJustDecodeBounds =&&&&&&&&&&& BitmapFactory.decodeStream(new FileInputStream(f), null, o);&&&&&&&&&&& // The new size we want to scale to&&&&&&&&&&& final int REQUIRED_SIZE = 400;&&&&&&&&&&& // Find the correct scale value. It should be the power of 2.&&&&&&&&&&& int scale = 1;&&&&&&&&&&& while (o.outWidth / scale / 2 &= REQUIRED_SIZE&&&&&&&&&&&&&&&&&&& && o.outHeight / scale / 2 &= REQUIRED_SIZE)&&&&&&&&&&&&&&& scale *= 2;&&&&&&&&&&& // Decode with inSampleSize&&&&&&&&&&& BitmapFactory.Options o2 = new BitmapFactory.Options();&&&&&&&&&&& o2.inSampleSize =&&&&&&&&&&& Bitmap bitmap = BitmapFactory.decodeStream(new FileInputStream(f),&&&&&&&&&&&&&&&&&&& null, o2);&&&&&&&&&&& ImageView iv = new ImageView(context);&&&&&&&&&&& iv.setImageBitmap(bitmap);&&&&&&&&&&& return iv.getDrawable();&&&&&&& } catch (FileNotFoundException e) {&&&&&&& }&&&&&&&&&& }
// -------------------压缩图片的方法//参考网址:/leizhenzi/archive//2046431.html//&&&&& public Drawable createThumbnails(String url) {//&&&&&&& BitmapFactory.Options options = new BitmapFactory.Options();//&&&&&&& options.inJustDecodeBounds =//&&&&&&& Bitmap bitmap = BitmapFactory.decodeFile(url, options); // 此时返回bm为空////&&&&&&& options.inJustDecodeBounds =////&&&&&&& // 缩放比。由于是固定比例缩放,只用高或者宽其中一个数据进行计算即可////&&&&&&& int be = (int) (options.outHeight / (float) 2);//&&&&&&& if (be &= 0)//&&&&&&&&&&& be = 1;////&&&&&&& options.inSampleSize =////&&&&&&& // 重新读入图片,注意此时已经把options.inJustDecodeBounds 设回false了////&&&&&&& bitmap = BitmapFactory.decodeFile(url, options);//&&&&&&& int w = bitmap.getWidth();//&&&&&&& int h = bitmap.getHeight();//&&&&&&& ImageView iv = new ImageView(context);//&&&&&&& iv.setImageBitmap(bitmap);////&&&&&&& return iv.getDrawable();//&&& }Options中有个属性inJustDecodeBounds 如果该值设为true那么将不返回实际的bitmap不给其分配内存空间而里面只包括一些解码边界信息即图片大小信息,那么相应的方法也就出来了,通过设置inJustDecodeBounds为true,获取到outHeight(图片原始高度)和 outWidth(图片的原始宽度),然后计算一个inSampleSize(缩放值),然后就可以取图片了,这里要注意的是,inSampleSize 可能小于0,必须做判断。也就是说先将Options的属性inJustDecodeBounds设为true,先获取图片的基本大小信息数据(信息没有保存在bitmap里面,而是保存在options里面),通过options.outHeight和 options. outWidth获取的大小信息以及自己想要到得图片大小计算出来缩放比例inSampleSize,然后紧接着将inJustDecodeBounds 设为false,就可以根据已经得到的缩放比例得到自己想要的图片缩放图了。
另外两篇可供参考的文章/blog/905066
/leizhenzi/archive//2046431.html
阅读(...) 评论() &推荐这篇日记的豆列

参考资料

 

随机推荐