1

最近我买了一台带处理器的好电脑i5 3570k16GB of RAM我想知道是否有办法提高我的 Eclipse 和 Glassfish 速度,让它们可以hot deploy在我开发应用程序的同时启动并完成。

这是我的eclipse.ini

-nosplash
-vmargs
-Xincgc
-Xss500k
-Dosgi.requiredJavaVersion=1.6
-Xms512m
-Xmx1024m
-XX:NewSize=8m
-XX:PermSize=1024m
-XX:MaxPermSize=1024m
-XX:MaxPermHeapExpansion=10m
-XX:+UseConcMarkSweepGC
-XX:CMSInitiatingOccupancyFraction=70
-XX:+UseCMSInitiatingOccupancyOnly
-XX:+UseParNewGC
-XX:+CMSConcurrentMTEnabled
-XX:ConcGCThreads=2
-XX:ParallelGCThreads=2
-XX:+CMSIncrementalPacing
-XX:CMSIncrementalDutyCycleMin=0
-XX:CMSIncrementalDutyCycle=5
-XX:GCTimeRatio=49
-XX:MaxGCPauseMillis=20
-XX:GCPauseIntervalMillis=1000
-XX:+UseCMSCompactAtFullCollection
-XX:+CMSClassUnloadingEnabled
-XX:+DoEscapeAnalysis
-XX:+UseCompressedOops
-XX:+AggressiveOpts
-XX:+ExplicitGCInvokesConcurrentAndUnloadsClasses

有什么建议吗?

4

4 回答 4

4

Eclipse 和 Glassfish 只是容器,它们的调整很大程度上取决于您如何使用它们(eclipse 中的项目数量、glassfish 中的应用程序数量……)。但是,我在 eclipse.ini 中看到了一些奇怪的 JVM 选项。以下是我将简单删除的内容:

  • -Xincgc意味着-XX:+UseConcMarkSweepGC这是一个低暂停 GC,与并行收集器相比意味着高开销。我会切换到并行收集器。

  • -XX:NewSize=8m表示年轻代大小为 8MB,这确实很小,并且与弱代假设相悖。删除此选项并让 JVM 根据您使用应用程序的方式调整堆大小。

  • -XX:PermSize=1024m等于 MaxPermSize。设置 min=max 是胡说八道。删除最小大小,让 JVM 管理永久代大小。

  • -XX:+UseConcMarkSweepGC,参见 1。

  • -XX:CMSInitiatingOccupancyFraction=70 -XX:+UseCMSInitiatingOccupancyOnly -XX:+CMSConcurrentMTEnabled -XX:+CMSIncrementalPacing -XX:CMSIncrementalDutyCycleMin=0 -XX:ConcGCThreads=2 -XX:CMSIncrementalDutyCycle=5 -XX:+UseCMSCompactAtFullCollection -XX:+CMSClassUnloadingEnabled -XX:+ExplicitGCInvokesConcurrentAndUnloadsClasses与CMS相关。Cf 1,我会切换到并行收集器,所以你应该摆脱这些选项。

  • -XX:+UseParNewGC -XX:ParallelGCThreads=2意味着您在年轻代 (8 MB) 中为并行收集器提供了 2 个线程。这真的不会做任何事情。

  • -XX:GCTimeRatio=49 -XX:MaxGCPauseMillis=20 -XX:GCPauseIntervalMillis=1000在这里你说“我希望我的 GC 占用不到 49% 的时间,最大暂停时间为 20 毫秒,每次暂停之间至少间隔 1 秒”。您要求非常短的 GC,这会经常发生。可能不是你想要的。

您可能会注意到这些几乎是您的所有 JVM 选项。这是对的 :)

试试这个配置,如果它解决了您的问题,请告诉我们:

-nosplash
-vmargs
-Xss500k
-Dosgi.requiredJavaVersion=1.6
-Xms128m
-Xmx1024m
-XX:MaxPermSize=1024m
-XX:+UseParallelGC
-XX:+UseParallelOldGC
-XX:+DoEscapeAnalysis
-XX:+UseCompressedOops
-XX:+AggressiveOpts
-Xloggc:gc.log
-XX:+PrintGCDetails

资料来源:

于 2013-04-30T15:29:49.100 回答
1

你有固态硬盘吗?如果不买一个真的会提高你的性能体验,因为开发意味着大量的 IO。

于 2013-04-30T10:39:56.307 回答
1

如果你想加快你的开发过程,我认为你看错了地方。您的系统的性能应该绰绰有余。也许您可以稍微提高 -Xmx,具体取决于您的应用程序。也许SSD也会提高性能。

我自己可以使用 jrebel ( http://zeroturnaround.com/software/jrebel/ )加快我的开发速度。这是一个允许您热替换应用程序几乎任何部分的工具。因此,您不必每次都重新部署整个应用程序。我知道这要花钱,但很快就付清了。也许还有一些我还不知道的免费替代品。

于 2013-04-30T10:45:22.843 回答
0

win/linux/mac:你可以将JDK放入只读RAM磁盘并从那里运行它

linux:您可以使用anything-sync-daemon将Eclipse 和Glassfish(可能还有maven 本地存储库“.m2”)保存在RAM 中,并定期将其同步到HDD/SSD

我还建议阅读以下内容:

Tip 1 : Always run the latest JDK and Eclipse.
Tip 2 : Tune Eclipse Preferences
Tip 3 : Keep your JDK on a RAM Disk
Tip 4 : Tweak your eclipse.ini
Tip 5: Get your anti-virus outta here
Tip 6: Keep SVN and GIT out of Eclipse
Tip 7: Use your keyboard

http://www.nicolasbize.com/blog/7-tips-to-speed-up-eclipse/

于 2015-04-30T17:42:46.463 回答