[转]迄今为止最优的Eclipse运行性能调优 ,含eclipse.ini

最近,Eclipse(Eclipse-JEE3.5)运行十分缓慢(可能插件安装过多),因此,得到了个机会调优一下,以便提高工作效率

下图是未经任何调整eclipse的gc情况(使用jvisualvm命令,安装visual gc插件)

在终端输入:jvisualvm运行后,工具->插件->visual gc,安装。

启动eclipse后,在终端运行: ps -ef | grep eclipse,然后在jvisualvm的应用程序一栏选择eclipse pid的程序双击,即可到visual gc上查看图表。

-Xms1024m
-Xmx1024m

对应的为图中的 Old 区;

-XX:NewSize=768m
-XX:MaxNewSize=768m

对应的为图中的 Eden 区;

-XX:PermSize=200m
-XX:MaxPermSize=200m

对应的为图中的 Perm区;

从图中可以看出,仅启动过程就有38次young gc,11次full gc
为了查看gc细节,在eclipse.ini中加入如下参数:
-verbose:gc
-XX:+PrintGCDetails
-XX:+PrintGCDateStamps
-Xloggc:D:/soft/eclipse-jee/gc.log
gc的内容如下:

从gc日志中可以看出:
(1)young区开始为4928K,持续的不够,因此造成不断的young gc
(2)full gc时,old区的空间增大扩容,因此old区空间也不够
为了防止这种情况发生,加入以下参数:
-Xms768m
-Xmx768m
-XX:NewSize=512m
-XX:MaxNewSize=512m
此次调整后结果如下图:

从图中可以看出,young gc没有了,但为啥还11次full gc呢?
以下是此次gc的日志:

从gc.log中,可以看出,是因为perm区的没有空间了,才导致的full gc,于是将perm区增大并固定大小
加入以下参数:
-XX:PermSize=96m
-XX:MaxPermSize=96m
此次调整后结果如下:

可以看出,没有full gc了,而且young gc只有一次,有了一定的效果了
启动时gc的问题解决了,现在来看其他问题:

从图中可以看出,如果classloader加载class的时间能快些,应该也会节省些时间
加入以下参数:
-Xverify:none(关闭Java字节码验证,从而加快了类装入的速度)

将上两图比较
第一个:平均每个类的载入时间为,54.615/10950 = 0.0049876712328767s
第二个:平均每个类的载入时间为,34.498/9484 = 0.0036374947279629s
可以看出,多少是有一些性能上的提高的
考虑到eclipse长时间运行,其他可能调节的有以下几点:
(1)关闭System.gc()
(2)提高eclipse中某些代码的JIT编译
(3)优化垃圾收集器,以减少垃圾收集造成应用无响应的时间
对于(1),加入以下参数:
-XX:+DisableExplicitGC
对于(2),会影响启动速度,但由于eclipse是长时间运行,因此此优化是必要的:
-XX:CompileThreshold=100(方法调用多少次就会被编译成本地机器码)

可以看出,编译方法的数量和时间明显增加
对于(3),换用CMS收集器应该比串行收集器要好,加入以下参数:
-XX:+UseParNewGC
-XX:+UseConcMarkSweepGC
-XX:CMSInitiatingOccupancyFraction=80
至此,调优结束

总结一下加入的参数如下:
-verbose:gc
-XX:+PrintGCDetails
-XX:+PrintGCDateStamps
-Xloggc:D:/soft/eclipse-jee-galileo-win32/eclipse/gc.log
-Xms512m
-Xmx512m
-XX:NewSize=256m
-XX:MaxNewSize=256m
-XX:PermSize=96m
-XX:MaxPermSize=96m
-XX:+DisableExplicitGC
-XX:CompileThreshold=100
-Xverify:none
-XX:+UseParNewGC
-XX:+UseConcMarkSweepGC
-XX:CMSInitiatingOccupancyFraction=80

http://blog.csdn.net/gtuu0123/article/details/6720253

参考如上内容用的eclipse.ini:

1、小内存,运行情况不错

-clean
-startup
plugins/org.eclipse.equinox.launcher_1.3.0.v20130327-1440.jar
--launcher.library
plugins/org.eclipse.equinox.launcher.gtk.linux.x86_1.1.200.v20130807-1835
-product
org.eclipse.epp.package.cpp.product
--launcher.defaultAction
openFile
-showsplash
org.eclipse.platform
--launcher.XXMaxPermSize
256m
--launcher.defaultAction
openFile
--launcher.appendVmargs
-vmargs
-Dosgi.requiredJavaVersion=1.6
-Xms512m
-Xmx512m
-XX:NewSize=256m
-XX:MaxNewSize=256m
-XX:PermSize=96m
-XX:MaxPermSize=96m
-XX:+DisableExplicitGC
-XX:CompileThreshold=100
-Xverify:none
-XX:+UseParNewGC
-XX:+UseConcMarkSweepGC
-XX:CMSInitiatingOccupancyFraction=80

2、大内存

-clean
-startup
plugins/org.eclipse.equinox.launcher_1.3.0.v20130327-1440.jar
--launcher.library
plugins/org.eclipse.equinox.launcher.gtk.linux.x86_1.1.200.v20130807-1835
-product
org.eclipse.epp.package.cpp.product
--launcher.defaultAction
openFile
-showsplash
org.eclipse.platform
--launcher.XXMaxPermSize
256m
--launcher.defaultAction
openFile
--launcher.appendVmargs
-vmargs
-Dosgi.requiredJavaVersion=1.6
-Xms1600m
-Xmx1600m
-XX:NewSize=800m
-XX:MaxNewSize=800m
-XX:PermSize=256m
-XX:MaxPermSize=256m
-XX:+DisableExplicitGC
-XX:CompileThreshold=100
-Xverify:none
-XX:+UseParNewGC
-XX:+UseConcMarkSweepGC
-XX:CMSInitiatingOccupancyFraction=80

3、大内存,自己弄的,可能优化的不合理

-clean
-startup
plugins/org.eclipse.equinox.launcher_1.3.0.v20130327-1440.jar
--launcher.library
plugins/org.eclipse.equinox.launcher.gtk.linux.x86_1.1.200.v20130807-1835
-product
org.eclipse.epp.package.cpp.product
--launcher.defaultAction
openFile
-showsplash
org.eclipse.platform
--launcher.XXMaxPermSize
256m
--launcher.defaultAction
openFile
--launcher.appendVmargs
-vmargs
-Dosgi.requiredJavaVersion=1.6
-XX:MaxPermSize=256m
-Xms40m
-Xmx2048m
-Xss1024k
-Xss1024k
-XX:+DisableExplicitGC
-XX:CompileThreshold=100
-XX:+UseParNewGC
-XX:+UseConcMarkSweepGC
-XX:CMSInitiatingOccupancyFraction=80
-Xverify:none

[转]迄今为止最优的Eclipse运行性能调优 ,含eclipse.ini

时间: 2024-11-10 14:29:00

[转]迄今为止最优的Eclipse运行性能调优 ,含eclipse.ini的相关文章

[大数据性能调优] 第一章:性能调优的本质、Spark资源使用原理和调优要点分析

本課主題 大数据性能调优的本质 Spark 性能调优要点分析 Spark 资源使用原理流程 Spark 资源调优最佳实战 Spark 更高性能的算子 引言 我们谈大数据性能调优,到底在谈什么,它的本质是什么,以及 Spark 在性能调优部份的要点,这两点让直式进入性能调优都是一个至关重要的问题,它的本质限制了我们调优到底要达到一个什么样的目标或者说我们是从什么本源上进行调优.希望这篇文章能为读者带出以下的启发: 了解大数据性能调优的本质 了解 Spark 性能调优要点分析 了解 Spark 在资

JVM性能调优1:JVM性能调优理论及实践(收集整理)

本系列包括: JVM性能调优1:JVM性能调优理论及实践(收集整理) JVM性能调优2:JVM性能调优参数整理 JVM性能调优3:JVM_堆溢出分析过程和命令 JVm性能调优4:GC日志分析 JVM性能调优5:Heap堆分析方法 注:本文部分内容收集整理了网上的资料. 1.      内存结构 1.1.     分代结构图 注意: 在JVM中,非堆内存,根据模式不同分为不同的几个部分. -Server下:非堆包括:持久代和代码缓存(Code cache) -client下:非堆包括:持久代.代码

JVM性能调优2:JVM性能调优参数整理

本系列包括: JVM性能调优1:JVM性能调优理论及实践(收集整理) JVM性能调优2:JVM性能调优参数整理 JVM性能调优3:JVM_堆溢出分析过程和命令 JVm性能调优4:GC日志分析 JVM性能调优5:Heap堆分析方法  序号 参数名 说明 JDK 默认值 使用过 1 JVM执行模式 2 -client -server 设置该JVM运行与Client 或者Server Hotspot模式,这两种模式从本质上来说是在JVM中运行不同的JIT(运行时编译模块)代码,并且两者在JVM内部

【Java/Android性能优3】Android性能调优工具TraceView使用介绍

本文转自:http://blog.csdn.net/innost/article/details/9008691 在软件开发过程中,想必很多读者都遇到过系统性能问题.而解决系统性能问题的几个主要步骤是: 测评:对系统进行大量有针对性的测试,以得到合适的测试数据. 分析系统瓶颈:分析测试数据,找到其中的hotspot(热点,即bottleneck). 性能优化:对hotspot相关的代码进行优化. 由上述步骤可知,性能优化的目标对象是hotspot.如果找到的hotspot并非真正的热点,则性能优

hbase性能调优(1)

hbase性能调优 标签: hbase 性能调优 | 发表时间:2014-05-17 15:10 | 作者:无尘道长 分享到: 出处:http://www.iteye.com 一.服务端调优 1.参数配置 1).hbase.regionserver.handler.count:该设置决定了处理RPC的线程数量,默认值是10,通常可以调大,比如:150,当请求内容很大(上MB,比如大的put.使用缓存的scans)的时候,如果该值设置过大则会占用过多的内存,导致频繁的GC,或者出现OutOfMem

sqlserver性能调优第一步

相信不少的朋友,无论是做开发.架构的,还是DBA等,都经常听说“调优”这个词.说起“调优”,可能会让很多技术人员心头激情澎湃,也可能会让很多人感觉苦恼,不知道如何入手.当然,也有很多人对此不屑一顾,因为并不是每个人做的项目都对性能要求很高. 在主流的企业级开发和互联网应用中,数据库的重要性是不言而喻的,而数据库的性能对于整个系统的性能而言也是至关重要的,这里无庸赘述. sqlserver的性能调优,其实是个很宽广的话题.坦白讲,想从概念到实践的完全讲清楚并掌握透彻,可能至少需要几本书的内容.本文

信步漫谈之Eclipse—性能调优

作为一个开发人员,最常用的工具是一定要玩的溜的,正所谓磨刀不误砍柴工嘛!本文主要记录了本人对Eclipse使用过程中的一些个人习惯配置与技巧,以及性能调优方法,仅以为记. 注:因为使用过多个版本的Eclipse,所以部分配置可能有的Eclipse版本没有,忽略即可. Eclipse配置优化 1.关闭部分Eclipse启动加载的插件(windows->preference->general->startup and shutdown) 保留以下,其他可以关闭: WTP(Web Tools

性能调优工具

[性能调优工具jps.jstack.jmap.jhat.jstat.hprof使用详解]http://my.oschina.net/feichexia/blog/196575 现实企业级Java开发中,有时候我们会碰到下面这些问题: OutOfMemoryError,内存不足 内存泄露 线程死锁 锁争用(Lock Contention) Java进程消耗CPU过高 这些问题在日常开发中可能被很多人忽视(比如有的人遇到上面的问题只是重启服务器或者调大内存,而不会深究问题根源),但能够理解并解决这些

成为Java GC专家(5)—Java性能调优原则

这是"成为Java GC专家"系列的第五篇文章.在第一篇深入浅出Java垃圾回收机制中,我们已经学习了不同的GC算法流程.GC的工作原理.新生代(Young Generation)和老年代(Old Generation)的概念.你应该了解了JDK7中5种GC类型以及各种类型对应用程序的影响. 在第二篇如何监控Java的垃圾回收中,阐述了JVM是怎样实际执行垃圾回收的,我们怎样去监控GC以及哪些工具能让这个过程更高效. 第三篇如何如何优化Java垃圾回收机制中展示了一些基于真实案例的最佳