• cmd下
  • eclipse下
  • tomcat下

cmd下指定jvm参数

在cmd下执行Java程序可以通过如下方式之地需要配置的Java 虚拟机参数:

这里只是指定了对初始为2M,新生代为1M,堆最大值为2M
java -Xms2m -Xmn1m -Xmx2m YourClassName

eclipse下指定jvm参数

windows->Perfences->Java->Installed JRES->选定目标jre->Edit->在Defaut VM arguments里面填写虚拟机参数,

注意以空格分开各个参数。

tomcat指定jvm参数01

# 摘自catalina.bat
rem CATALINA_OPTS (Optional) Java runtime options used when the "start",
rem "run" or "debug" command is executed.
rem Include here and not in JAVA_OPTS all options, that should
rem only be used by Tomcat itself, not by the stop process,
rem the version command etc.
rem Examples are heap size, GC logging, JMX ports etc.
#CATALINA_OPTS(可选)Java运行时选项用于“启动”, 执行“运行”或“调试”命令。
#包括在这里,而不是JAVA_OPTS中的所有选项,那应该是只能由Tomcat本身使用,
#而不是通过停止进程,版本命令等示例是堆大小,GC日志记录,JMX端口等
...
rem JAVA_OPTS (Optional) Java runtime options used when any command
rem is executed.
rem Include here and not in CATALINA_OPTS all options, that
rem should be used by Tomcat and also by the stop process,
rem the version command etc.
rem Most options should go into CATALINA_OPTS. #JAVA_OPTS(可选)执行任何命令时使用的Java运行时选项。
#在CATALINA_OPTS中不包含CATALINA_OPTS中的所有选项,Tomcat应该使用,
#还有停止进程,版本命令等都使用Java运行时选项。多数选项应该进入CATALINA_OPTS。

上面摘自catalina.bat,按照注释来说设置CATALINA_OPTS比设置JAVA_OPTS更好一点不是吗?

同样的设置方式是这样的:

# 后面的关于永久代的设置其实只是对部分jdk1.7版本和稍前的一点版本有效,
#在jdk1.8永久代就已经没有了
CATALINA_OPTS -Xms256m -Xmx512m -XX:PermSize=64M -XX:MaxPermSize=128m

tomcat指定jvm参数02

通常tomcat在windows下还会以windwos服务的形式运行,那么就需要到注册表里面取修改jvm的运行参数了:

win+r -> regedit -> 编辑 -> 查找 ,关键字是,“Apache Software Foundation”,找到之后

在Options里面增加对应的参数就好了,还是空格分隔参数:


大致上就这么多了。


下面是tomcat常见的jvm内存溢出:

  • java.lang.OutOfMemoryError: Java heap space ----JVM Heap(堆)溢出
  • java.lang.OutOfMemoryError: PermGen space ---- PermGen space溢出。
  • java.lang.StackOverflowError ---- 栈溢出

一般而言,栈溢出都是程序本身又问题;

至于永久代溢出(PermGen space溢出)可以手动设置MaxPermSize大小,想这样 “ -XX:MaxPermSize=”;

至于堆溢出,可以调整-Xmn -Xms -Xmx这三个值,当然也可以设置一下它们之间的比值;

新生代(eden+from+to)和老年代(不包含永久区)的比值:-XX:NewRatio

例如我们设置参数:-Xmx20m -Xms20m -XX:NewRatio=4 (注意这里改参数为4表示新生代和老年代比值为1:4)


最新文章

  1. 【Basics of Entity Framework】【EF基础系列1】
  2. MFC打开系统关于对话框
  3. ref与out之间的区别
  4. [原创]java WEB学习笔记101:Spring学习---Spring Bean配置:IOC容器中bean的声明周期,Bean 后置处理器
  5. iOS 代理与block 逆向传值 学习
  6. iOS Architecture和Valid architectures
  7. BZOJ 3672 [Noi2014]购票 (熟练剖分+凸壳维护)
  8. Nginx 独立图片服务器的搭建
  9. Swagger 生成 ASP.NET Web API
  10. 第4章 同步控制 Synchronization ----互斥器(Mutexes)
  11. mac svn无法保存密码,JetBrains IDE(WebStrom、IntelliJ IDEA) 反复提示输入密码
  12. C#中属性的使用——主动调用才发挥作用
  13. nmap学习之nmap -sP 【目标】
  14. Windows Internals 笔记——线程局部存储区
  15. ResDepot CRC码
  16. 适配器模式adepter
  17. LeetCoder题解之Find All Anagrams in a String
  18. Xshell启动时显示丢失MSVCP110.dll
  19. JS中setTimeout()的用法详解
  20. js里的数组push用法及append()

热门文章

  1. 如鹏网仿QQ侧滑菜单:ResideMenu组件的使用笔记整理+Demo
  2. MySQL之关系
  3. null值可以赋给引用变量,不能给基本类型
  4. swoole 消息队列
  5. day22-Python运维开发基础(正则函数 / 异常处理)
  6. 【PAT甲级】1036 Boys vs Girls (25 分)
  7. 从分支git clone
  8. Android 记住密码和自动登录界面的实现(SharedPreferences 的用法)
  9. 企业面试问题收集-ssh框架
  10. 引入CSS的方式、link和@import的区别