一、JVM启动参数配置:JVM启动参数共分为三类,分别是标准参数(-)
非标准参数(-x)
非Stable参数(-XX)
其一是标准参数(-),所有的JVM实现都必须实现这些参数的功能,而且向后兼容;
其二是非标准参数(-X),指的是JVM底层的一些配置参数,这些参数在一般开发中默认即可,不需要任何配置。但是在生产环境中,并不保证所有jvm实现都满足,所以为了提高性能,往往需要调整这些参数,以求系统达到最佳性能。另外这些参数不保证向后兼容,也即是说“如有变更,恕不在后续版本的JDK通知”(这是官网上的原话)
其三是非Stable参数(-XX),这类参数在jvm中是不稳定的,不适合日常使用的,后续也是可能会在没有通知的情况下就直接取消了,需要慎重使用。
二:JVM内存三个主要的域:新域、旧域以及永久域。JVM生成的所有新对象放在新域中。一旦对象经历了一定数量的垃圾收集循环后,便进入旧域。而在永久域中是用来存储JVM自己的反 射对象的,如class和method对象,而且GC(GarbageCollection)不会在主程序运行期对永久域进行清理。其中新域和旧域属于 堆,永久域是一个独立域并且不认为是堆的一部分。
三:各主要JVM启动参数的作用如下:
-Xms:设置jvm内存的初始大小
-Xmx:设置jvm内存的最大值
-Xmn:设置新域的大小(这个似乎只对jdk1.4来说是有效的,后来就废弃了)
-Xss:设置每个线程的堆栈大小(也就是说,在相同物理内存下,减小这个值能生成更多的线程)
-XX:NewRatio:设置新域与旧域之比,如-XX:NewRatio=4就表示新域与旧域之比为1:4
-XX:NewSize:设置新域的初始值
-XX:MaxNewSize:设置新域的最大值
-XX:MaxPermSize:设置永久域的最大值
-XX:SurvivorRatio=n:设置新域中Eden区与两个Survivor区的比值。(Eden区主要是用来存放新生的对象,而两个Survivor区则用来存放每次垃圾回收后存活下来的对象)
四:如何使用JVM启动参数:
非常的简单。举一个“HelloWorld”的例子
- publicclassHelloWorld
- {
- publicstaticvoidmain(String[]args)
- {
- System.out.println(”HelloWorld!”);
- }
- }
编译并运行:
- D:\work>javacHelloWorld.java
- D:\work>java-Xms256M-Xmx512MHelloWorld
- HelloWorld!
这样就可以了。
而如果你要在J2EE环境中配置这些参数,那么你需要在J2EE应用服务器或者Servlet容器相关启动参数设置处指定,在其启动文件中来配置,Tomcat是在catalina.bat中配置,JBoss是在run.bat中配置,其他服务器就不说了。
五:JVM启动参数使用中常见的错误:
java.lang.OutOfMemoryError相信很多开发人员都用到过,这个主要就是JVM参数没有配好引起的,但是这种错误又分两 种:java.lang.OutOfMemoryError:Javaheapspace和 java.lang.OutOfMemoryError:PermGenspace,其中前者是有关堆内存的内存溢出,可以同过配置-Xms和-Xmx参 数来设置,而后者是有关永久域的内存溢出,可以通过配置-XX:MaxPermSize来设置。
相关推荐
2. **调整JVM参数**:根据应用程序的实际需求调整JVM参数。 - 例如:可以将初始堆内存大小设为256MB,最大堆内存大小设为512MB。 - 将永久代的初始大小设为128MB,最大大小设为256MB。 3. **测试与验证**:完成...
这篇文章将深入探讨Java的三种启动参数类别:标准参数、非标准参数和非Stable参数,并着重介绍标准参数。 首先,标准参数是所有JVM实现必须支持且保持向后兼容的选项。以下是一些重要的标准参数: 1. `-client`:...
JVM的常用调优参数有哪些 内存快照如何抓取,怎么分析Dump文件?知道吗? 谈谈JVM中,类加载器你的认识? rt-jar ext application 1、JVM的位置 2、JVM的体系结构 大多数将内存分配为Method Area(方法区)、Heap(堆)...
解决此问题的方法之一是调整启动参数,增加永久代的最大容量,或者在内存溢出时导出堆内存快照以供分析。 当Java应用程序发生内存溢出时,可以使用jvisualvm工具来分析coredump文件或内存快照。通过jvisualvm工具,...
7. **JVM版本不兼容**:Tomcat对Java版本有要求,确保使用的JDK版本与Tomcat版本兼容。 压缩包中的`win7如何添加自己的服务.txt`文件可能提供了关于在Windows 7系统中创建和管理服务的指南,这对于理解如何手动处理...
使用-agentpath VM参数中的“id”或“config”选项现在会自动激活“立即启动”模式 添加了JPROFILER_AGENT_OPTIONS环境变量,以允许在无法修改“-agentpath”VM参数的情况下为代理设置调试参数 触发堆转储”操作:...
- **命令参数解析模块**:解析启动MiniJavaVM时传递的命令行参数。 - **类的装载和解析模块**:实现类文件的装载与解析。 - **内存管理模块**:负责内存的分配和回收。 - **执行引擎模块**:解释执行字节码指令。 - ...
2. **环境变量**:检查JVM启动参数,确保有正确的字符集设置,如`-Dfile.encoding=UTF-8`。 3. **图形组件设置**:在创建`Chart`时,指定合适的`Locale`,例如`Locale.CHINA`,以支持中文显示。 4. **字体设置**:...
### Java Jar包运行及Bat文件制作详解 #### 一、Java Jar包的运行方式 Java是一种广泛使用的编程语言,它可以跨平台运行,这得益于Java虚拟机(JVM)的存在。Java程序通常被打包成Jar(Java Archive)文件进行发布。...
- Java类加载器的作用和类别(如启动类加载器、扩展类加载器、系统类加载器等)。 5. Java的内存管理 - Java的垃圾回收机制和对象的生命周期。 - Java中的本地方法(native method)和本地接口(JNI)。 6. C++...
- `suspend=n`:JVM启动时不暂停,等待调试器连接。如果设置为`y`,则JVM会在启动时暂停,直到调试器连接。 - `address=8787`:JVM监听的端口号。 3. **保存并重启Tomcat**:完成上述配置后,保存文件并重新启动...
为了避免JVM内存被操作系统交换出去,可以使用JVM参数锁定物理内存。但这也可能引发内存不足的警告,需要谨慎配置。 - **7.2.6. 错误使用API导致集群卡死** 不正确的API使用方式可能导致集群出现异常行为。确保...
同时,合理配置Eclipse的启动参数和JVM设置,如增加堆内存大小,也能有效提升启动速度和运行性能。 在文件管理方面,ezexplore可能是文件浏览和管理的插件,它可能提供了比Eclipse默认资源浏览器更强大的功能,如...
1. 创建dump文件:当Java应用程序遇到内存问题时,可以通过JVM参数`-XX:+HeapDumpOnOutOfMemoryError`配置,使得JVM在发生内存溢出时自动创建dump文件。也可以通过`jmap`命令手动触发dump文件的生成。 2. 加载dump...
- **功能**:用于设置Java工具(如JVM)的启动参数。 - **应用场景**:在需要调整JVM默认配置的情况下。 ##### 1.13 jconsole (1.5+ only) - **功能**:一个远程监控Java应用程序的图形化工具。 - **应用场景**:...
该工具的运行环境要求Java虚拟机(Java Virtual Machine,JVM),这意味着你需要在计算机上安装Java运行环境才能执行这个程序。Java是一种跨平台的编程语言,其“一次编写,到处运行”的特性使得该工具能在不同操作...
Scala 编译为 Java 字节码,可以在任何 JVM 上运行,包括 Dalvik JVM,这使得它在 Android 开发中也有一定应用。 学习 Scala 时,应以全新的视角去理解其设计理念,如使用 REPL(Read-Eval-Print Loop)进行交互式...
2. 在启动和关闭类别中,取消勾选不必要的插件或项目,例如只保留Tomcat6等必要的运行环境配置。 #### 四、调整MyEclipse的JVM参数 MyEclipse的性能很大程度上依赖于JVM的配置。通过调整JVM参数,可以显著提升...
使用前一阶段准备的训练数据对神经网络进行训练,优化其参数以提高预测准确性。 ##### 步骤5:测试训练后的网络 完成训练后,通过测试集验证网络性能,确保其在未知数据上的表现满足预期。 #### 总结 Neuroph...
同时,可以通过优化数据库索引、调整JVM参数等方式提升整体性能。 总的来说,“简单的jsp新闻网站”是一个典型的Java Web应用实例,它展示了如何使用JSP、Servlet和数据库技术来构建一个简单的信息发布平台。虽然...