内存溢出

.Net iis 内存溢出(System.OutOfMemoryException)的常见情况和处理方式总结

て烟熏妆下的殇ゞ 提交于 2019-12-02 10:46:01
最近项目上碰到了System.OutOfMemoryException 原因是页面上数据量大,缓存太多。 解决的三种方法:1)修改代码,降低缓存数据; 2)设置iis,应用程序池-回收条件-最大内存数(可以参考保存时候iis占用的内存) 3)设置iis,应用程序池-回收条件-回收特定时间(每天特点时间回收) 来源: https://blog.csdn.net/sunlibo111111/article/details/102753217

SSH部署到Tomcat内存溢出-OutOfMemoryError 的解决办法

∥☆過路亽.° 提交于 2019-12-02 08:52:11
使用ssh集成项目后,部署几次后会就会出现OutOfMemoryError PermGen space系统错误,通过在网上查阅资料,发现这个错误并不是Tomcat的问题,而JVM设计自身的一个缺陷,JVM把内存分了不同的区, PermGen space的全称是Permanent Generation space,是指内存的永久保存区域,类加载的时候就存放在这个区域中。本来SUN设计的时候认为这个区域在JVM启动的时候就固定了,但他没有想到现在动态会用得这么广泛。而且这个区域有特殊的垃圾收回机制,现在的问题是动态加载类到这个区域后,gc根本没办法回收! 没想到至今这个问题还没未能解决,有人给出最好的解决方法是不使用JDK,使用BEA的JRokit,当然现在 Oracle ,BEA,SU已经成为一家人了,我想这个问题应该会更快有更好的解决方案。 好了还是说说如何解决问题吧,网上大量的资料说在tomcat这样设置:SET JAVA_OPTS= -Xms64m -Xmx512m,但经过本人的测试,没有一点作用,详细看了JVM内存的分配机制后才知道,-Xms和--Xmx是调整Java heap space(即堆内存)的大小,ava heap space区域中存放对象,GC会收集这块区域。 如果出现的异常类型是:OutOfMemoryError: Java heap space,那应该设置

部署shop++,启动eclipse遇到内存溢出。

女生的网名这么多〃 提交于 2019-12-02 08:51:45
部署项目到tomcat,启动eclipse,控制台报OutOfMemoryError: PermGen space错误。网上找了一些资料,需要加大tomcat内存设置。 一、OutOfMemoryError: Java heap space 是堆溢出(存放java初始化代码,jar包。俗称静态区域) 1、找到在tomcat的bin目录下的 Tomcat6w.exe,打开设置大小。 2、找到“java”-->“Java Options”中设置大小如下(注意空格) -Xms128m -Xmx512m 二、OutOfMemoryError: PermGen space 永久保存区域溢出(动态区域,保存new出来的对象。和动态加载的资源) 1、找到在tomcat的bin目录下的 Tomcat6w.exe,打开设置大小。 2、找到“java”-->“Java Options”中设置大小如下(注意空格) -XX:PermSize=64m -XX:MaxPermSize=128m 注意:如果项目是eclipse开发环境、还需要设置eclipse中tomcat的空间分配。 1、双击控制台中“service”下面的“tomcat6.0 service at localhost”。 2、打开“General Information”下的“Open launch configuration”。 3、选中

eclise内存溢出解决

家住魔仙堡 提交于 2019-12-02 08:33:27
Eclipse里启动Tomcat,配置内存大小 2009年12月11日 星期五 10:50 一般安装完eclipse之后,在安装目录下你应该可以看到有一个 eclipse.ini 文件,对了,就是在这个文件里面修改,我打开同事机器上这个文件,里面的内容是: -vmargs -Dosgi.splashLocation=d:\Program Files\MyEclipse 5.5.1 GA\eclipse\MyEclipseSplash.bmp -Dosgi.splashLocation=d:\Program Files\MyEclipse 5.1.1 GA\eclipse\MyEclipseSplash.bmp -Xms64M -Xmx128M 呵呵,2G内存的机器,给eclipse这么点内存。。。介绍下参数的意思: -vmargs:说明后面是VM的参数 -Dosgi.splashLocation:表示启动eclipse时你看到的界面(不知道他这里面怎么冒出了二句相同的) -Xms64M :虚拟机占用系统的最小内存 -Xmx128M:虚拟机占用系统的最大内存 最后我把最大最小内存设置了下: 设置为: -Xms128M -Xmx512M 够用了,呵呵。 还可以在这里面加一些参数,如: -XX:PermSize:最小堆大小。一般报内存不足时,都是说这个太小, 堆空间剩余小于5%就会警告

Android解决大图片内存溢出

女生的网名这么多〃 提交于 2019-12-01 19:47:37
在Android平台上内存溢出是一件很头疼的事情,但解决办法还是有的,今天来翻译一篇谷歌官方提供的解决方案,原文可以参见: http://developer.android.com/training/displaying-bitmaps/load-bitmap.html 。 更有效地加载大的图片 图片有不同的形状可大小,在很多情况下他们总是大于一个典型应用UI的要求。例如,系统提供的Gallery程序显示了手机相机拍摄的图片,这些图片的分辨率总是大于设备屏幕的分辨率。 考虑到跟有限的设备内存打交道,理想情况下,你只需要加载在内存中的较低分辨率版本。分辨率较低的UI组键需要与显示它的大小相匹配。具有更高的分辨率的图像并不会带来显而易见的好处,但是仍然占用了宝贵的内存和因为缩放带来了额外的性能开销。 这节课将要通过载入一个较小的二次取样的小图片带你来编码一个大的图片而不需要超过每个程序最大的内存。 读取图片的尺寸和类型 BitmapFactory类提供了一些列创建不同图片种类的编码方式,例如: decodeByteArray() , decodeFile() , decodeResource() 等等。基于你的图片数据来源选择一个最合适的编码方式。这些编码方法试图为创建Bitmap分配内存,因此可以很容易地导致OutOfMemory异常。每个类型的解码方法有额外的签名

[Android] Bitmap OOM解决办法一

允我心安 提交于 2019-12-01 19:43:00
尽量不要使用setImageBitmap或setImageResource或BitmapFactory.decodeResource来设置一张大图, 因为这些函数在完成decode后,最终都是通过java层的createBitmap来完成的,需要消耗更多内存。 因此,改用先通过BitmapFactory.decodeStream方法,创建出一个bitmap,再将其设为ImageView的 source,decodeStream最大的秘密在于其直接调用JNI>>nativeDecodeAsset()来完成decode,无 需再使用java层的createBitmap,从而节省了java层的空间。 如果在读取时加上图片的Config参数,可以跟有效减少加载的内存,从而跟有效阻止抛out of Memory异常 另外,decodeStream直接拿的图片来读取字节码了, 不会根据机器的各种分辨率来自动适应, 使用了decodeStream之后,需要在hdpi和mdpi,ldpi中配置相应的图片资源, 否则在不同分辨率机器上都是同样大小(像素点数量),显示出来的大小就不对了。 另外,以下方式也大有帮助: 1 2 3 4 5 InputStream is = this.getResources().openRawResource(R.drawable.pic1); BitmapFactory

内存溢出及TOMCAT内存设置

我只是一个虾纸丫 提交于 2019-12-01 17:09:36
Tomcat的内存设置(Tomcat java.lang.OutOfMemoryErro(2009-10-09 17:18:15) 标签:it Tomcat的内存设置(Tomcat java.lang.OutOfMemoryError ) 如果是安装版的,那么在bin目录中有tomcat6w.exe文件,在其中设置。 vi /opt/apache-tomcat-6.0.14/bin/catalina.sh 在 # JAVA_OPTS (Optional) Java runtime options used when the "start", # "stop", or "run" command is executed. 下加入 export JAVA_OPTS="-server -Xms512m -Xmx1024m" 原因: PermGen space的全称是Permanent Generation space,是指内存的永久保存区域,这块内存主要是被JVM存放Class和Meta信息的,Class在被Loader时就会被放到PermGen space中,它和存放类实例(Instance)的Heap区域不同,GC(Garbage Collection)不会在主程序运行期对PermGen space进行清理,所以如果你的应用中有很CLASS的话,就很可能出现PermGen

内存溢出之Tomcat内存配置

我的梦境 提交于 2019-12-01 16:30:58
设置Tomcat启动的初始内存其初始空间(即-Xms)是物理内存的1/64,最大空间(-Xmx)是物理内存的1/4。 可以利用JVM提供的-Xmn -Xms -Xmx等选项可进行设置 三、实例,以下给出1G内存环境下java jvm 的参数设置参考: JAVA_OPTS="-server -Xms800m -Xmx800m -XX:PermSize=64M -XX:MaxNewSize=256m -XX:MaxPermSize=128m -Djava.awt.headless=true " JAVA_OPTS="-server -Xms768m -Xmx768m -XX:PermSize=128m -XX:MaxPermSize=256m -XX: NewSize=192m -XX:MaxNewSize=384m" CATALINA_OPTS="-server -Xms768m -Xmx768m -XX:PermSize=128m -XX:MaxPermSize=256m -XX:NewSize=192m -XX:MaxNewSize=384m" Linux: 在/usr/local/apache-tomcat-5.5.23/bin 目录下的catalina.sh添加: JAVA_OPTS='-Xms512m -Xmx1024m'要加“m”说明是MB,否则就是KB了

tomcat中jvm内存溢出解决方案

偶尔善良 提交于 2019-12-01 16:30:48
常见的内存溢出有以下两种: java.lang.OutOfMemoryError: PermGen space java.lang.OutOfMemoryError: Java heap space 一、java.lang.OutOfMemoryError: PermGen space PermGen space的全称是Permanent Generation space,是指内存的永久保存区域, 这块内存主要是被JVM存放Class和Meta信息的,Class在被Loader时就会被放到PermGen space中, 它和存放类实例(Instance)的Heap区域不同,GC(Garbage Collection)不会在主程序运行期对 PermGen space进行清理,所以如果你的应用中有很多CLASS的话,就很可能出现PermGen space错误, 这种错误常见在web服务器对JSP进行pre compile的时候。如果你的WEB APP下都用了大量的第三方jar, 其大小 超过了jvm默认的大小(4M)那么就会产生此错误信息了。 解决方法: 手动设置MaxPermSize大小 建议:将相同的第三方jar文件移置到tomcat/shared/lib目录下,这样可以达到减少jar 文档重复占用内存的目的。 二、java.lang.OutOfMemoryError: Java

堆内存溢出排查

隐身守侯 提交于 2019-12-01 12:03:55
生成hprof文件 ①,top出异常进程 ②,生成异常进程的dump文件 jmap -dump:format=b,file=[文件名] [进程] jmap -dump:format=b,file=heap.hprof 2576 ③,使用JProfiler分析hprof 文件 使用JProfiler分析大对象 ①,导入:session->open snapshot ②,查看大对象:Heap Walker -> Current Object Set ->Giggest Object 来源: https://www.cnblogs.com/wanhua-wu/p/11684716.html