接着昨天的干,首先看看昨天的日志,两次都是minoj GC,旧生代和持久代都没有可用GC,研究的重点就是这两次GC,从日志的最后HEAP信息来看
Heap
def new generation total 157248K, used 19646K [0x04b00000,
0x0f5a0000, 0x0f5a0000)
eden space 139776K, 9% used [0x04b00000, 0x05788208, 0x0d380000)
from space 17472K, 38% used [0x0d380000, 0x0da27790, 0x0e490000)
to
space 17472K, 0% used [0x0e490000,
0x0e490000, 0x0f5a0000)
tenured generation total 349568K, used 19156K [0x0f5a0000,
0x24b00000, 0x24b00000)
the space 349568K, 5% used [0x0f5a0000, 0x108553c8, 0x10855400,
0x24b00000)
compacting perm gen total 65536K, used 40825K [0x24b00000,
0x28b00000, 0x2ab00000)
the space 65536K, 62% used [0x24b00000, 0x272de638, 0x272de800,
0x28b00000)
No shared spaces configured.
旧生代的的使用率为5%,而新生代的的使用率特别是from这一块已经是38%,我推测是对象由于eden晋升到from导致哦那关键不足的时候导致的GC(我还没有找到监控eden和from,to的内存变化的方法,jConsole的话是可以看到,但是前提是要先让程序启动找到PID,,这样一来又来不急开jConsole,很麻烦,所以暂时放弃),看看新生代的空间为154M,先将其设置为200M,即增加参数-Xmn256M,果然有效果,看看日志
Gc3.log
4.367: [GC 4.368:
[DefNew: 209792K->21157K(235968K), 0.0987968 secs] 209792K->21157K(498112K),
0.0989220 secs] [Times: user=0.08 sys=0.01, real=0.10 secs]
Heap
def new generation total 235968K, used 115536K [0x10010000,
0x20010000, 0x20010000)
eden space 209792K, 44% used [0x10010000, 0x15c3ac40, 0x1ccf0000)
from space 26176K, 80% used [0x1e680000, 0x1fb296e8, 0x20010000)
to
space 26176K, 0% used
[0x1ccf0000, 0x1ccf0000, 0x1e680000)
tenured generation total 262144K, used 0K [0x20010000,
0x30010000, 0x30010000)
the space 262144K, 0% used [0x20010000, 0x20010000, 0x20010200,
0x30010000)
compacting perm gen total 65536K, used 40839K [0x30010000,
0x34010000, 0x36010000)
the space 65536K, 62% used [0x30010000, 0x327f1fa0, 0x327f2000,
0x34010000)
No shared spaces
configured.
这次只有一次GC,新生代的使用率得到了提高,旧生代貌似没有被使用,效果不错,但是这次的调优对启动速度的影响没有昨天那么明显。
接下来需要优化的是看看eclipse在持续运行过程中的GC情况并加以优化,这样需要打开一些项目,看eclipse在初始化项目的时候会做什么样的GC,今天要回家,估计结果一时半出不来,等结果出来了我再整理一下发出来。
分享到:
相关推荐
在Eclipse这样的集成开发环境中,对Java虚拟机(JVM)进行设置是非常关键的,因为它直接影响到应用程序的性能和稳定性。Eclipse中的JVM内存设置涉及到多个参数,这些参数用于控制JVM如何分配和管理内存资源。以下是...
本文将详细介绍如何设置Eclipse的JVM参数,并解释这些参数的意义及其对Eclipse性能的影响。 #### 二、Eclipse与JVM的关系 Eclipse本身是一个基于Java的应用程序,因此它需要在JVM上运行。Eclipse通过调整JVM参数来...
### Eclipse与Tomcat的JVM设置详解 #### 一、引言 在开发Java应用程序时,经常需要使用集成开发环境(IDE)与应用服务器进行配合。Eclipse是一款非常流行的Java IDE,而Tomcat则作为轻量级的应用服务器被广泛采用...
本文将详细介绍Eclipse启动参数的意义、作用以及如何进行设置。 #### 1. Eclipse启动参数概述 Eclipse启动参数主要分为两类:一类是针对Eclipse自身的参数;另一类则是针对JVM(Java虚拟机)的参数。其中,JVM参数...
本文将深入探讨如何通过调整JVM参数来优化Eclipse的启动和运行速度,旨在为开发者提供实用的性能调优策略。 #### 二、JVM参数详解 ##### 1. **-Xverify:none** 关闭Java字节码验证,这一步骤可以显著加速类的加载...
2. **配置Eclipse启动参数**:在Eclipse的启动配置中,可以通过修改`eclipse.ini`文件来调整JVM内存设置。例如,添加或调整`-Xms`(初始堆大小)和`-Xmx`(最大堆大小)等参数,确保JVM有足够的内存空间运行应用。 ...
2. **TaobaoJVM的发展历程**:2010年4月,淘宝开始进行JVM实现优化,同年7月,实现了第一个优化点——GC Invisible Heap。2010年10月,第一个优化的JVM版本TaobaoJVM上线Beta测试。2011年7月,淘宝与Oracle达成合作...
在使用Eclipse进行开发的过程中,有时可能会遇到JVM(Java虚拟机)错误的问题。这类问题通常表现为启动Eclipse时出现错误提示,例如“jvm terminated. Exit code=-1”。本文将详细介绍这一问题的原因以及具体的解决...
除了`XXMaxPermSize`,还有其他JVM参数可能影响Eclipse的启动,比如`-Xms`和`-Xmx`,它们分别设置了JVM初始堆大小和最大堆大小。如果遇到内存问题,也可以尝试调整这两个参数。例如,如果系统内存充足,可以增大`-...
2. **验证**:加载后的字节码需要经过严格的验证,以确保其符合Java语言规范,不会对JVM造成破坏。验证包括格式验证、语义验证和类型检查等步骤。 3. **准备**:在验证通过后,JVM为类的静态变量分配内存,并赋予...
标题 "ECLIPSE,TOMCAT,JVM内存设置" 涉及到的是在开发Java Web应用程序时,如何配置Eclipse集成开发环境(IDE)、Apache Tomcat服务器以及Java虚拟机(JVM)的内存参数,以优化性能和避免内存溢出等问题。...
本文将深入探讨如何对Eclipse进行启动优化,以实现更快的启动速度。 一、减少启动时加载的工作空间 工作空间是Eclipse存储项目和设置的地方。如果你的工作空间包含大量项目,Eclipse在启动时会加载所有项目,这会...
### MyEclipse与Eclipse启动优化综合指南 在软件开发领域,MyEclipse与Eclipse作为广受欢迎的集成开发环境(IDE),其高效性与性能是开发者关注的焦点。然而,由于内置了大量的插件和功能,这两款IDE在启动及运行...
在eclipse设置JVM heap 的最小值与最大值的图案
总的来说,Eclipse启动加速插件是提升开发效率的重要工具,它们通过内存管理优化和减少启动时加载的组件来缩短启动时间。正确配置和使用这些插件,可以让Eclipse在处理大型项目或多任务环境时更加得心应手,从而提高...
JVM优化方法
《Eclipse性能优化——<深度理解JVM>读书笔记》主要涵盖了如何利用Eclipse IDE进行Java应用程序的性能优化,以及深入理解JVM的工作原理。在本文中,我们将探讨Eclipse的性能调优策略,以及JVM内存管理和垃圾回收机制...
例如,`-Xms2048m -Xmx2048m`设置了JVM的最小和最大堆内存为2GB,`-Xmn512m`指定了新生代的大小为512MB,`-XX:MaxPermSize=256m`设定了永久代的最大值为256MB,而`-Xss128k`则表示每个线程的栈空间大小为128KB。...