ImageVerifierCode 换一换
格式:DOC , 页数:14 ,大小:77.50KB ,
资源ID:2992800      下载积分:15 文钱
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,省得不是一点点
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.wenke99.com/d-2992800.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: QQ登录   微博登录 

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(Matlab的jave内存不足处理方法.doc)为本站会员(11****ws)主动上传,文客久久仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知文客久久(发送邮件至hr@wenke99.com或直接QQ联系客服),我们立即给予删除!

Matlab的jave内存不足处理方法.doc

1、JAVA_OPTS 各参数的含意及配置 2010-07-09 09:12:03| 分类: linux | 标签: |字号大中小 订阅 Xms Xmx XX:PermSize XX:MaxPermSize1. 各个参数的含义什么?我们首先了解一下 JVM 内存管理的机制,然后再解释每个参数代表的含义。堆(Heap)和非堆(Non-heap)内存按照官方的说法:“Java 虚拟机具有一个堆,堆是运行时数据区域,所有类实例和数组的内存均从此处分配。堆是在 Java 虚拟机启动时创建的。”“在 JVM 中堆之外的内存称为非堆内存(Non-heap memory)”。可以看出JVM 主要管理两种类型的内

2、存:堆和非堆。简单来说堆就是 Java 代码可及的内存,是留给开发人员使用的;非堆就是 JVM 留给自己用的,所以方法区、JVM 内部处理或优化所需的内存(如 JIT 编译后的代码缓存)、每个类结构(如运行时常数池、字段和方法数据)以及方法和构造方法的代码都在非堆内存中。堆内存分配JVM 初始分配的内存由-Xms 指定,默认是物理内存的 1/64;JVM 最大分配的内存由-Xmx 指定,默认是物理内存的 1/4。默认空余堆内存小于 40%时,JVM 就会增大堆直到-Xmx 的最大限制;空余堆内存大于 70% 时,JVM 会减少堆直到-Xms 的最小限制。因此服务器一般设置-Xms、-Xmx 相

3、等以避免在每次 GC 后调整堆的大小。非堆内存分配JVM 使用-XX:PermSize 设置非堆内存初始值,默认是物理内存的 1/64;由XX:MaxPermSize 设置最大非堆内存的大小,默认是物理内存的 1/4。JVM 内存限制(最大值)首先 JVM 内存限制于实际的最大物理内存,假设物理内存无限大的话,JVM 内存的最大值跟操作系统有很大的关系。简单的说就 32 位处理器虽然可控内存空间有 4GB,但是具体的操作系统会给一个限制,这个限制一般是 2GB-3GB(一般来说 Windows 系统下为 1.5G-2G,Linux 系统下为 2G-3G),而64bit 以上的处理器就不会有限制

4、了。 2. 为什么有的机器我将 -Xmx 和-XX:MaxPermSize 都设置为 512M 之后 tomcat可以启动,而有些机器无法启动?通过上面对 JVM 内存管理的介绍我们已经了解到 JVM 内存包含两种:堆内存和非堆内存,另外 JVM 最大内存首先取决于实际的物理内存和操作系统。所以说设置 VM 参数导致程序无法启动主要有以下几种原因:1) 参数中-Xms 的值大于-Xmx,或者-XX:PermSize 的值大于-XX:MaxPermSize;2) -Xmx 的值和-XX:MaxPermSize 的总和超过了 JVM 内存的最大限制,比如当前操作系统最大内存限制,或者实际的物理内存

5、等等。说到实际物理内存这里需要说明一点的是,如果你的内存是 1024MB,但实际系统中用到的并不可能是 1024MB,因为有一部分被硬件占用了。谈 JAVA_OPTS 环境变量不起作用2009-09-23 17:29 最近在处理运行一个 java 应用时,老是出现java.lang.OutOfMemoryError: Java heap space.即时我在环境变量里设置了JAVA_OPTS -Xmx2048m 还是报错。 javaeye 上搜索了一番,发现很多人都有这个疑问。经过 Team Leader 的指导,发现: 1、JAVA_OPTS 只对 tomcat/weblogic 等 Web

6、 服务器中间件有效,以“java -cp *.jar test.Main”方式运行的不会去读取 JAVA_OPTS. 2、如果在运行 java 类,需要设置 Heap Size 的话,需要如下方式: java -Xmx2048m -jar test.jar 或者 java -Xmx1024m -cp douglas.jar com.douglas.Main 3、如果是在 Unix 或者 Aix 服务器上,可以直接写下如下语句 export JAVA_OPTS=-Xmx1024m -Djava.awt.headless=true java $JAVA_OPTS -cp douglas.jar c

7、om.douglas.Main 或者 vi test.sh 文件,写下: #!/bin/sh classpath=./douglas.jar /usr/java5/bin/java -Xmx1024M -cp $classpath com.douglas.Main 4、对于非 Java 语言(C+)调用 Java 代码,最好的方式是提供给操作员设置的页面,在申明 JavaVM 时,将 JavaOPTS 数值放置至 JavaVM 中。 对于 JVM 设置,可以查考如下配置 example: # Memory configuration JAVA_OPTS=“-server“ JAVA_OPTS=

8、“$JAVA_OPTS -Xms1280m“ JAVA_OPTS=“$JAVA_OPTS -Xmx1280m“ JAVA_OPTS=“$JAVA_OPTS -XX:NewSize=640m“ JAVA_OPTS=“$JAVA_OPTS -XX:MaxNewSize=640m“ JAVA_OPTS=“$JAVA_OPTS -XX:SurvivorRatio=5“ JAVA_OPTS=“$JAVA_OPTS -XX:TargetSurvivorRatio=90“ JAVA_OPTS=“$JAVA_OPTS -XX:MaxTenuringThreshold=12“ JAVA_OPTS=“$JAVA_

9、OPTS -XX:+UseConcMarkSweepGC“ JAVA_OPTS=“$JAVA_OPTS -XX:+CMSIncrementalMode“ JAVA_OPTS=“$JAVA_OPTS -XX:+CMSIncrementalPacing“ JAVA_OPTS=“$JAVA_OPTS -XX:+CMSParallelRemarkEnabled“ JAVA_OPTS=“$JAVA_OPTS -XX:+UseParNewGC“ JAVA_OPTS=“$JAVA_OPTS -XX:PermSize=64m“ JAVA_OPTS=“$JAVA_OPTS -XX:MaxPermSize=64m

10、“ JAVA_OPTS=“$JAVA_OPTS -XX:+UseTLAB“ # Enable class unloading (needed with ConcMarkSweepGC JAVA_OPTS=“$JAVA_OPTS -XX:+CMSClassUnloadingEnabled“ JAVA_OPTS=“$JAVA_OPTS -XX:+CMSPermGenSweepingEnabled“ # debug and memory tweaks to avoid Hotspot Compiler Failure JAVA_OPTS=“$JAVA_OPTS -XX:+PrintCompilati

11、on“ JAVA_OPTS=“$JAVA_OPTS -XX:CodeCacheMinimumFreeSpace=2M“ JAVA_OPTS=“$JAVA_OPTS -XX:ReservedCodeCacheSize=64M“ JAVA_OPTS=“$JAVA_OPTS -XX:CompileCommandFile=/my/portal/bin/hotspot_compiler“ # Enable JMX Remote Monitoring JAVA_OPTS=“$JAVA_OPTS -Dcom.sun.management.jmxremote“ JAVA_OPTS=“$JAVA_OPTS -D

12、com.sun.management.jmxremote.port=9000“ JAVA_OPTS=“$JAVA_OPTS -Dcom.sun.management.jmxremote.ssl=false“ JAVA_OPTS=“$JAVA_OPTS -Dcom.sun.management.jmxremote.password.file=/my/portal/bin/jmxremote.password“ JAVA_OPTS=“$JAVA_OPTS -Dcom.sun.management.jmxremote.access.file=/my/portal/bin/jmxremote.acce

13、ss“ # turn on some debug for GC only print the distribution when doing tuning JAVA_OPTS=“$JAVA_OPTS -verbose:gc“ JAVA_OPTS=“$JAVA_OPTS -XX:+PrintGCTimeStamps“ JAVA_OPTS=“$JAVA_OPTS -XX:+PrintGCDetails“ #JAVA_OPTS=“$JAVA_OPTS -XX:+PrintTenuringDistribution“ JAVA_OPTS=“$JAVA_OPTS -Xloggc:/my/portal/lo

14、gs/portal/gc.log“ # Enable remote debugging port JAVA_OPTS=“$JAVA_OPTS -Xdebug -Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=n“ JAVA 参数设置我 tomcat 的设置是-Xms1200m-Xmx1500m-XX:MaxNewSize=256m-XX:PermSize=64m-XX:MaxPermSize=128m这样设置有问题吗,怎么老出现内存溢出的错误,我来帮他解答 输入内容已经达到长度限制还能输入 9999 字插入图片删除图片插入地

15、图删除地图插入视频视频地图回答即可得 2 分经验值,回答被选为满意回答可同步增加经验值和财富值参考资料:匿名回答提交回答取消 2010-6-23 14:48 满意回答 先试试这个:-Xms64m -Xmx256m -XX:PermSize=128M -XX:MaxNewSize=256m -XX:MaxPermSize=256m 下面是找了 2 篇文章答案 1设置 Tomcat 启动的初始内存其初始空间(即-Xms)是物理内存的 1/64,最大空间(-Xmx)是物理内存的 1/4。可以利用 JVM 提供的 -Xmn -Xms -Xmx 等选项可进行设置三、实例,以下给出 1G 内存环境下 ja

16、va 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:PermS

17、ize=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 时会 报内存不足。-Xms:初始值-Xmx:最大值-Xmn:最小值Windows在 catalina.bat 最前面加入set JAVA_OPTS=-Xms128m -Xmx350m 如果用 startup.bat 启动

18、 tomcat,OK 设置生效. 够成功的分配 200M 内存.但是如果不是执行 startup.bat 启动 tomcat 而是利用 windows 的系统服务启动tomcat 服务, 上面的设置就不生效了,就是说 set JAVA_OPTS=-Xms128m -Xmx350m 没起作用.上面分配 200M 内存就OOM 了.windows 服务执行的是 bintomcat.exe.他读取注册表中的值, 而不是 catalina.bat的设置.解决办法:修改注册表 HKEY_LOCAL_MACHINESOFTWAREApache Software FoundationTomcat Servi

19、ce ManagerTomcat5ParametersJavaOptions原值为-Dcatalina.home=“C:ApacheGroupTomcat 5.0“-Djava.endorsed.dirs=“C:ApacheGroupTomcat 5.0commonendorsed“-Xrs加入 -Xms300m -Xmx350m 重起 tomcat 服务, 设置生效 答案 2Tomcat 的 JVM 内存溢出问题的解决关键字: tomcat 的 jvm 内存溢出问题的解决 最近在熟悉一个开发了有几年的项目,需要把数据库从 mysql 移植到 oracle,首先把 jdbc 的连接指向 mys

20、ql,打包放到 tomcat 里面,可以跑起来,没有问题,可是当把 jdbc 连接指向 oracle 的时候,tomcat 就连续抛java.lang.OutOfMemoryError 的错误,上网 google 了一下,了解了一下 tomcat的运行机制,也解决了问题,share 出来,以备查。 1、首先是:java.lang.OutOfMemoryError: Java heap space 解释: Heap size 设置 JVM 堆的设置是指 java 程序运行过程中 JVM 可以调配使用的内存空间的设置.JVM 在启动的时候会自动设置 Heap size 的值,其初始空间(即-Xms

21、) 是物理内存的 1/64,最大空间(-Xmx)是物理内存的 1/4。可以利用 JVM 提供的-Xmn -Xms -Xmx 等选项可进行设置。Heap size 的大小是 Young Generation 和 Tenured Generaion 之和。 提示:在 JVM 中如果 98的时间是用于 GC 且可用的 Heap size 不足 2的时候将抛出此异常信息。 提示:Heap Size 最大不要超过可用物理内存的 80,一般的要将-Xms 和-Xmx选项设置为相同,而-Xmn 为 1/4 的-Xmx 值。 解决方法: 手动设置 Heap size 修改 TOMCAT_HOME/bin/ca

22、talina.bat,在“echo “Using CATALINA_BASE: $CATALINA_BASE“”上面加入以下行: Java 代码 set JAVA_OPTS=%JAVA_OPTS% -server -Xms800m -Xmx800m -XX:MaxNewSize=256m set JAVA_OPTS=%JAVA_OPTS% -server -Xms800m -Xmx800m -XX:MaxNewSize=256m 或修改 catalina.sh 在“echo “Using CATALINA_BASE: $CATALINA_BASE“”上面加入以下行: JAVA_OPTS=“$J

23、AVA_OPTS -server -Xms800m -Xmx800m -XX:MaxNewSize=256m“ 2、其次是:java.lang.OutOfMemoryError: PermGen space 原因: PermGen space 的全称是 Permanent Generation space,是指内存的永久保存区域,这块内存主要是被 JVM 存放 Class 和 Meta 信息的,Class 在被 Loader 时就会被放到 PermGen space 中,它和存放类实例 (Instance)的 Heap 区域不同,GC(Garbage Collection)不会在主程序运行期对

24、 PermGen space 进行清理,所以如果你的应用中有很 CLASS 的话, 就很可能出现 PermGen space 错误,这种错误常见在 web 服务器对 JSP 进行 pre compile 的时候。如果你的 WEB APP 下都用了大量的第三方jar, 其大小超过了 jvm 默认的大小 (4M)那么就会产生此错误信息了。 解决方法: 1. 手动设置 MaxPermSize 大小 修改 TOMCAT_HOME/bin/catalina.bat(Linux 下为 catalina.sh) ,在 Java 代码 “echo “Using CATALINA_BASE: $CATALINA

25、_BASE“”上面加入以下行: set JAVA_OPTS=%JAVA_OPTS% -server -XX:PermSize=128M -XX:MaxPermSize=512m “echo “Using CATALINA_BASE: $CATALINA_BASE“”上面加入以下行: set JAVA_OPTS=%JAVA_OPTS% -server -XX:PermSize=128M -XX:MaxPermSize=512m catalina.sh 下为: Java 代码 JAVA_OPTS=“$JAVA_OPTS -server -XX:PermSize=128M -XX:MaxPermSi

26、ze=512m“ JAVA_OPTS=“$JAVA_OPTS -server -XX:PermSize=128M -XX:MaxPermSize=512m“ 另外看到了另外一个帖子,觉得挺好,摘抄如下: 分析 java.lang.OutOfMemoryError: PermGen space 发现很多人把问题归因于: spring,hibernate,tomcat,因为他们动态产生类,导致JVM 中的 permanent heap 溢出 。然后解决方法众说纷纭,有人说升级 tomcat版本到最新甚至干脆不用 tomcat。还有人怀疑 spring 的问题,在 spring 论坛上讨论很激烈,因

27、为 spring 在 AOP 时使用 CBLIB 会动态产生很多类。 但问题是为什么这些王牌的开源会出现同一个问题呢,那么是不是更基础的原因呢?tomcat 在 Q测试 m 文件是否正常运行,输入命令:makesqr(5),运行结果。(4)创建 Java 组件a.创建新的发布项目。点击发布工具箱的“新建”按钮。在打开的窗口中,左边选择 MATLAB Builder JA,右边选择 Java Package。选择文件保存路径为D:/MyProgram/workspace/matlab/magic_square,输入文件名magicsquare,点击 ok 按钮。b.重命名类名MATLAB Bui

28、lder JA 产品根据所建的项目名称自动给创建的类赋名,象目前创建后的项目 magicsquare 下的类,名称应为:magicsquareclass,重命名为 magic。c.确认发布工具面板上的选项 Generate Verbose Output 已被选择。d.magicsquare 项目中添加 m-file 文件。先选择当前目录至 makesqr.m文件所在的路径,在右边文件显示窗口中拖动对应的文件至发布工具窗口,系统自动将该文件放至对应类中,点击保存按钮。e.构建项目,创建初始的 java 包。在发布工具面板上点击构建项目按钮 ,系统开始构建项目,其操作结果,警告等信息会显示在 ou

29、tput 窗口上。构建后系统会在项目路径下生成两个文件夹:src 和 distrib,src 包含 java 源文件 magic.class,distrib包含打包文件 magicsquare.jar。构建路径及构建内容的选择可以在Deployment Project Settings dialog box 设置。(5)选择打包文件点击发布工具面板上的 settings 按钮,打开设置页面。在左边窗口选择“Packaging”,右边窗口按表格指示操作,最后点击 ok 按钮。要打包的文件 操作MCR Installer 选中 Include MCR.选项.Auto-generated Javadoc documentation在 Additional Files 窗口选择项目的/src/doc ,点击Add 按钮,添加到右边栏上。readme.txt 在 Additional Files 窗口选择项目的/distrib 的readme.txt,点击 Add 按钮,添加到右边栏上。(6)运行打包程序。点击发布工具面板上的打包按钮,对项目进行打包。然后用压缩工具把 distrib 里的文件打包起来。

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。