Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何确定是什么使Eclipse变慢?_Eclipse_Performance_Codebase - Fatal编程技术网

如何确定是什么使Eclipse变慢?

如何确定是什么使Eclipse变慢?,eclipse,performance,codebase,Eclipse,Performance,Codebase,我们有相当大的代码库(150多个项目,400000多行Java代码,一些Groovy和Gradle代码,一些Perl代码,一些XML,很多JSP等等)。我设法在SpringToolsStudio 2.6中打开了所有这些项目,并在其中添加了一些Groovy、Perl、Checkstyle和PMD插件 问题是Eclipse一直让我的CPU忙个不停。当我更新一些东西时,它真的很慢,它的构建很慢,任何类型的UI操作都会延迟发生 此外,我有相当好的64位机器,8GBs的RAM,我运行64位版本的STS,我

我们有相当大的代码库(150多个项目,400000多行Java代码,一些Groovy和Gradle代码,一些Perl代码,一些XML,很多JSP等等)。我设法在SpringToolsStudio 2.6中打开了所有这些项目,并在其中添加了一些Groovy、Perl、Checkstyle和PMD插件

问题是Eclipse一直让我的CPU忙个不停。当我更新一些东西时,它真的很慢,它的构建很慢,任何类型的UI操作都会延迟发生

此外,我有相当好的64位机器,8GBs的RAM,我运行64位版本的STS,我给Eclipse提供2GB(但它不会比1GB的堆更高)

所以,我的第一个问题是,有没有办法确定是什么让它变慢的?你们中的一些人是否成功地在一个工作区中使用了如此大的代码库


我已经尝试过查看运行Eclipse的JVM的线程(使用jconsole),但是在那里我找不到任何有趣的东西。

通过启用调试来了解Eclipse正在做什么的一种方法。有一些关于调试eclipse构建器的信息,但是该过程是通用的,即您需要从命令行$eclipsec–debug>log.txt启动eclipse,并使用.options文件启用对某些插件的调试。我想您应该仔细研究一下“更新”和“构建”操作

另一种选择是使用工具,例如。我发现您的工具包非常有用,例如,您可以在您的工具包中启用CPU评测,然后在Eclipse中执行一个您认为需要花费大量时间的操作。操作完成后,您可以拍摄快照并在工具包中进行一些分析。需要注意的是,将YourKit探查器连接到Eclipse将进一步降低Eclipse的速度


尽管如此,一个工作区中150多个项目还是有点多。如果可能的话,您可能应该为每个组件设置一个工作区,并在目标平台中使用其余插件。您的所有工作区都可以共享一个目标平台。对于150多个项目,单是完整的工作区构建就需要花费相当多的时间,因为必须生成大量的类文件,这意味着需要大量的磁盘IO,而eclipse在这方面无法帮助您,只有SSD可以:)

我将提出一些建议-这些建议是为了方便起见。如果你下定决心要弄清楚它是什么插件,或者加入那个项目来修复它,或者向支持列表发送仇恨邮件,那么你可能想跳到下面的“分析它”

检查控制台 如果您从命令行启动eclipse(即键入
eclipse
),那么如果抛出任何异常,您将在这里看到它们。有时,缓慢可能是由插件反复失败和抛出大量异常引起的。有时候你可以修复它,有时候你必须删除插件

提高你的公羊 我们喜欢GC,但它会导致缓慢死亡。GC的美妙之处在于,您的程序永远不会耗尽内存——因为用户认为它已经锁定并在实际耗尽ram之前将其杀死。因此,请尝试增加PermGen和其他Eclipse内存设置:

创建一个新的工作区 我经常放弃,只是删除/重新创建整个工作区。有这么多的插件,这对调试来说是一个真正的挑战,而且它经常会在工作区目录中成为垃圾,使事情不断恶化

保持Eclipse的精益 如果我想让Eclipse保持快速,我将为单个项目创建一个安装,并只添加所需的插件。如果你能从非EE版本开始,你已经不再那么臃肿了

剖析它 Sun JDK中包含的VisualVM(您可能已经安装了它)可用于查看哪些类占用的处理器时间最多,哪些对象占用内存(以及是什么创建了它们)

启动VisualVM,您应该会看到应用程序中列出了Eclipse。右键单击Eclipse条目并在VisualVM中“打开”Eclipse。现在,您可以附加一个探查器并查看正在使用哪些类

分析会让一切都慢下来(很多!),所以你可能想从尽可能小的例子开始——或者非常耐心。特别是在评测开始时,它将花费很长时间,因为它“插入”类(注入字节码以允许评测)。

提出了一种新方法:

Eclipse SDK中UI冻结的自动检测 Eclipse SDK已配置为在新工作区的默认错误日志视图中显示UI冻结的堆栈跟踪。
您可以使用这些信息来识别和报告EclipseIDE的缓慢部分

您可以通过
General>UI responsibility monitoring
首选项页面中的选项禁用监控或调整其设置,如下所示


我同意。虽然我从未在Eclipse中遇到过速度问题,但我在Visual Studio(通常对我来说速度非常快)中遇到过,当时我必须在我的主解决方案中使用130多个项目进行编程。@deepakazad,你会感到惊讶,但我的机器上有一个SSD磁盘:)@deepakazad,感谢调试提示,我会试一试。@Andrey即使有SSD 150项目也相当多:)@deepakazad,实际上我不同意你的观点,我一直在进一步试验,我已经在同一台机器上用几乎相同的插件集和Eclipse Galileo 32位JEE安装打开了所有这些项目。你知道吗?它工作得非常快。所以,我的STS安装有问题。问题似乎不仅出现在构建者身上,因为即使IDE中没有任何事情发生,它也会让CPU忙。将permgen空间从256M增加到512M有助于在有160个项目(没有SSD硬盘)的工作空间中保持Eclipse性能随时间的稳定。另请参阅: