Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/performance/5.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 - Fatal编程技术网

当项目包含许多链接时,Eclipse会变慢(原因:构建路径中的网络共享不好)

当项目包含许多链接时,Eclipse会变慢(原因:构建路径中的网络共享不好),eclipse,performance,Eclipse,Performance,我们在其中一个应用程序中有一个包含所有代码的eclipse项目。我认为这是一个相当多的代码-不是一个小项目,但也不是一个大项目。我对它进行了一次小检查,得到: 找到代码文件 合计代码行数 此检查包括不为空或仅包含{或}的任何代码行 因此,它不是一个庞大的项目-但是,.project定义了许多链接来屏蔽真实的目录结构,从而为包资源管理器创建一个不同的视图-因此该项目将更有意义 问题是,eclipse在某些领域工作得非常慢。 示例: 在工作区中查找引用(Ctrl+Shift+G)-与我以前从事的这

我们在其中一个应用程序中有一个包含所有代码的eclipse项目。我认为这是一个相当多的代码-不是一个小项目,但也不是一个大项目。我对它进行了一次小检查,得到:

找到代码文件
合计代码行数

此检查包括不为空或仅包含
{
}
的任何代码行

因此,它不是一个庞大的项目-但是,
.project
定义了许多链接来屏蔽真实的目录结构,从而为
包资源管理器创建一个不同的视图-因此该项目将更有意义

问题是,
eclipse
在某些领域工作得非常慢。
示例:

  • 在工作区中查找引用(Ctrl+Shift+G)-与我以前从事的这个规模的项目相比,需要花费很长时间
  • 通过
    jadclipse
    JDEclipse
    反编译可能需要1分钟的时间-导致
    eclipse
    在标题栏上显示可爱的(无响应)后缀。从eclipse外部反编译相同的代码不到一秒钟
  • JUnit测试执行-启动执行需要10秒以上,在这10秒钟内,
    eclipse
    似乎没有做任何重要的事情
你知道为什么会发生这种情况,以及它是否是“复杂”项目结构的结果吗

使用
Eclipse3.6
,无需安装许多插件

编辑:

使用
resmon
最终向我展示了这个问题。我注意到eclipse一直在尝试连接到网络共享—虽然不需要太多CPU或IO,但它仍然存在。 在检查
.classpath
文件时,我注意到:

<classpathentry kind="lib" path="build_class" sourcepath="some share using samba ..."> 

马上解决了问题。由于我们以任何方式使用了反编译器插件,因此我们没有受到此更改的影响。

这是一种典型的情况,即存在一个或多个资源瓶颈

您将需要使用操作系统工具调查Eclipse正在等待什么(任务管理器和perfmon对于Windows非常有用),如果这无助于使用Oracle6JDK中的jvisualvm调查Eclipse本身的话

您很可能会发现系统正在等待底层硬盘。这可能有以下几个原因:

  • Eclipse是一个大程序。操作系统可能需要将其中的一部分交换到磁盘。对于Eclipse,这会破坏性能。真的
  • Eclipse需要大量的磁盘访问。如果您的磁盘速度较慢,或者(可怕的可怕的)防病毒程序过于激进,这也会破坏性能。如果操作系统有足够的备用RAM,它可以在内存中缓存文件,从而提供更好的性能
如果是这种情况,请获取更多RAM


如果底层系统很好,但Eclipse本身速度非常慢(但其他Java程序运行得很好),那么使用jvisualvm查看内存使用情况随时间的变化,如果需要等待时有许多频繁的垃圾收集,则可能需要为JVM分配更多内存。这是在eclipse.ini文件中完成的。

这是一种典型的有一个或多个资源瓶颈的情况

您将需要使用操作系统工具调查Eclipse正在等待什么(任务管理器和perfmon对于Windows非常有用),如果这无助于使用Oracle6JDK中的jvisualvm调查Eclipse本身的话

您很可能会发现系统正在等待底层硬盘。这可能有以下几个原因:

  • Eclipse是一个大程序。操作系统可能需要将其中的一部分交换到磁盘。对于Eclipse,这会破坏性能。真的
  • Eclipse需要大量的磁盘访问。如果您的磁盘速度较慢,或者(可怕的可怕的)防病毒程序过于激进,这也会破坏性能。如果操作系统有足够的备用RAM,它可以在内存中缓存文件,从而提供更好的性能
如果是这种情况,请获取更多RAM


如果底层系统很好,但Eclipse本身速度非常慢(但其他Java程序运行得很好),那么使用jvisualvm查看内存使用情况随时间的变化,如果需要等待时有许多频繁的垃圾收集,则可能需要为JVM分配更多内存。这是在eclipse.ini文件中完成的。

如果您使用Windows,并且磁盘是瓶颈,我相信使用带有合适USB密钥的ReadyBoost可以提高性能。如果这仅限于单个项目,该怎么办?我尝试了其他几个项目(单独的工作区),但没有一个遇到这个问题。您仍然认为
jvisualvm
能有所帮助吗?如果它只是一个项目,那么您已经发现Eclipse内部触发这一点的差异。我猜想jvisualvm将显示Eclipse JVM的行为如所述。
jvisualvm
在我的
Eclipse
启动时挂起。。。甚至与项目开放与否无关。即使在
工作区选择
屏幕中,它也会挂起。尝试使用JDK中包含的JRE调用Eclipse。如果这样做没有帮助,那么现在可能是一个很好的时机来找出并修复系统中出现的问题。此外,如果您使用Windows和磁盘是瓶颈,我相信使用带有合适USB密钥的ReadyBoost可以提高性能。如果这仅限于一个项目,该怎么办?我尝试了其他几个项目(单独的工作区),但没有一个遇到这个问题。您仍然认为
jvisualvm
能有所帮助吗?如果它只是一个项目,那么您已经发现Eclipse内部触发这一点的差异。我猜想jvisualvm将显示Eclipse JVM的行为如所述。
jvisualvm
在我的
Eclipse
启动时挂起。。。甚至与项目开放与否无关。即使在
工作区选择中<classpathentry kind="lib" path="build_class">