我发现使用Eclipse导入一个大项目时它总是很慢或挂起。有什么推荐的技巧吗?我听说有一种方法可以调整Eclipse的堆大小,并想知道更多细节。感谢。
我的问题与that question不同,因为该问题涵盖了特定版本Eclipse的特定设置。我正在使用Eclipse 4.4.1,并没有发现它在该帖子中有所涉及。如果有人有任何进一步的想法,那就太好了。
发布我的eclipse.ini文件,
-startup
../../../plugins/org.eclipse.equinox.launcher_1.3.0.v20140415-2008.jar
--launcher.library
../../../plugins/org.eclipse.equinox.launcher.cocoa.macosx.x86_64_1.1.200.v20140603-1326
-product
org.eclipse.epp.package.standard.product
--launcher.defaultAction
openFile
-showsplash
org.eclipse.platform
--launcher.XXMaxPermSize
256m
--launcher.defaultAction
openFile
--launcher.appendVmargs
-vm
/Library/Java/JavaVirtualMachines/jdk1.8.0_05.jdk/Contents/Home/bin/java
-vmargs
-Dosgi.requiredJavaVersion=1.7
-XstartOnFirstThread
-Dorg.eclipse.swt.internal.carbon.smallFonts
-Xms40m
-Xmx512m
-Xdock:icon=../Resources/Eclipse.icns
-XstartOnFirstThread
-Dorg.eclipse.swt.internal.carbon.smallFonts
从gc找到错误,
Java HotSpot(TM) 64-Bit Server VM (25.5-b02) for bsd-amd64 JRE (1.8.0_05-b13), built on Mar 18 2014 00:36:13 by "java_re" with gcc 4.2.1 (Based on Apple Inc. build 5658) (LLVM build 2336.11.00)
Memory: 4k page, physical 16777216k(1263060k free)
/proc/meminfo:
CommandLine flags: -XX:InitialHeapSize=1073741824 -XX:MaxHeapSize=2147483648 -XX:+PrintGC -XX:+PrintGCTimeStamps -XX:+UseCompressedClassPointers -XX:+UseCompressedOops -XX:+UseParallelGC
0.069: [GC (Allocation Failure) 512K->456K(1048064K), 0.0012740 secs]
0.100: [GC (Allocation Failure) 967K->552K(1048576K), 0.0007710 secs]
0.142: [GC (Allocation Failure) 1576K->887K(1048576K), 0.0010520 secs]
0.170: [GC (Allocation Failure) 1911K->1145K(1049600K), 0.0011690 secs]
0.259: [GC (Allocation Failure) 3154K->1711K(1049600K), 0.0015070 secs]
0.307: [GC (Allocation Failure) 3759K->2198K(1052672K), 0.0013960 secs]
0.374: [GC (Allocation Failure) 6294K->2847K(1052672K), 0.0022820 secs]
0.510: [GC (Allocation Failure) 6934K->3982K(1055744K), 0.0152520 secs]
0.604: [GC (Allocation Failure) 11150K->6772K(1056768K), 0.0071190 secs]
0.646: [GC (Allocation Failure) 13940K->9925K(1060864K), 0.0099910 secs]
0.710: [GC (Allocation Failure) 20165K->14445K(1062400K), 0.0131930 secs]
1.045: [GC (Allocation Failure) 24685K->16812K(1069056K), 0.0078650 secs]
1.263: [GC (Allocation Failure) 33196K->19905K(1069056K), 0.0037050 secs]
1.429: [GC (Allocation Failure) 36289K->20490K(1079808K), 0.0040400 secs]
1.985: [GC (Allocation Failure) 47114K->21536K(1079808K), 0.0063240 secs]
3.218: [GC (Allocation Failure) 48160K->27304K(1094656K), 0.0121460 secs]
的问候, 林
答案 0 :(得分:1)
这是一个非常棘手的问题。您可以尝试为您的案例找到最佳的JVM选项,如上面的评论所述。
另一种选择是尝试由Zeroturnaround制作的Eclipse Optimizer。它将尝试诊断并修复Eclipse安装中的一些问题。
答案 1 :(得分:1)
我建议你在eclipse.ini文件中加入一些JVM调试选项。您可以使用-XX:PrintGCDetails和-Xloggc:来检查GC详细信息。也许有太多的Full GCs。如果是这样的话,下一步应该会有所帮助。
您还可能希望将初始堆大小增加到-Xms512m,以便在启动时分配更多内存。 -XX:如果您的Eden空间太小,NewRatio可能会有所帮助,这将导致很多次要的GC。
更改垃圾收集器可能是另一种选择,但我相信默认选项最适合Java桌面应用程序。