【问题标题】:Do too many plug-ins slow down Eclipse?过多的插件会减慢 Eclipse 的速度吗?
【发布时间】:2011-01-03 16:23:30
【问题描述】:

我最近在我的 Eclipse 中安装了一个新项目,还需要安装一些插件来管理它。我还安装了其他插件,我不需要管理项目,但认为尝试一下会很好。

在此之后,我注意到我的 IDE 的响应速度没有以前那么快了。我不确定这是否与新项目的大小(几乎是我以前工作区中的 8 倍)或安装的插件数量有关。

由于我对项目的大小无能为力,而且圣诞节已经过去了,我不会很快得到新的硬件,我想知道我是否可以对插件做些什么(除了卸载它们:P)。

我可以将它们配置为在打开关联的透视图或视图时延迟加载吗?我不确定它们究竟是如何工作的,但我想这已经是这样了。

有什么我可以做的(与插件相关的)来加速我的 IDE 吗?

谢谢。

【问题讨论】:

    标签: java eclipse ide eclipse-plugin performance


    【解决方案1】:

    一些插件在启动时加载,并允许您指定最初不加载它们。稍后可能会按需加载它们。

    打开首选项并导航至常规 -> 启动和关闭。您将找到一个标记为在启动时自动加载的插件列表。您可以禁用任何这些插件。但是,如果您确实使用它们,它们将按需加载。

    【讨论】:

      【解决方案2】:

      据我所知,插件不会影响 eclipse 的整体性能,除非它们被激活。 可以肯定的是,请参阅SO question

      您可以创建一些自定义透视图,其中您明确不激活某些插件,但是一旦使用插件,只要打开 Eclipse,它就会保持活动状态。

      首先优化您的 eclipse.ini(请参阅this SO answer),看看问题是否仍然存在。

      【讨论】:

      • 即使我关闭透视图,它们也会保持活跃状态​​吗?
      • @AdriánPérez 不确定,自 2010 年以来事情可能已经发生了变化,但扩展注册表仍在 e4 中使用(stackoverflow.com/questions/17590464/…,这意味着这些扩展并不都是 OSGi 服务),并且,为了避免重新初始化它们的成本,它们可能会。
      【解决方案3】:

      不确定插件是否是您的问题,但过去有两件事对我有帮助:

      首先,我建议您使用 eclipse 的 XmxXms 参数。为 Eclipse 提供它可以使用的最大内存有很大帮助。例如,我将Xmx 设置为 1024M,但它可以更高(虽然它确实有一个上限,但我不记得它是什么了)。另一个要查看的参数是launcher.XXMaxPermSize

      其次,我不确定这是否适用于你——但值得一提的是,它非常愚蠢,可能会被忽视。我的 Eclipse 工作区在我的主目录中有一段时间——它存储在隔壁房间的服务器上。当我将它移动到我机器上的本地目录时,响应时间要快得多。也许你忽略了这样的事情。

      【讨论】:

        【解决方案4】:

        许多 Eclipse 插件在构建过程中添加了验证周期。例如,JBoss Tools 添加了 Seam Validator,它们在构建期间会消耗大量资源。您可以使用 Eclipse 首选项禁用一些不必要的验证器。

        【讨论】:

          【解决方案5】:

          Eclipse 仅在开始时加载插件的插件 XML,因此每个插件的开销很小。插件的类在需要时加载......至少如果插件被正确编程。很可能不是插件数量导致减速。

          这可能是您的程序的大小(我没有注意到 java 项目的速度变慢了大约 200.000 LOC)。

          或者它可能是一两个编程错误的插件。您可以尝试逐个停用以找到导致减速的那个。然后您可以决定是否可以替换或删除它。

          【讨论】:

            【解决方案6】:

            在 Eclipse 启动期间,它会加载模块和插件,所以这是真的。此外,使用太多插件会增加 IDE 的 RAM 需求。这可能是原因。

            有一个早期启动功能允许插件在 Workbench 启动后加载:

            描述:这个扩展点是 用于注册想要的插件 启动时激活。作为启动元素上的属性给出的类必须实现接口 org.eclipse.ui.IStartup。一旦工作台启动,就会从一个单独的线程调用 earlyStartup() 方法。
            ...
            请注意,此表单已弃用,并且 不应再使用。它的 功能依赖于可用性 的 org.eclipse.core.runtime.compatibility 插件和 org.eclipse.core.runtime.compatibility.registry 分段。插件提供 对此扩展点的扩展是 在工作台首选项中列出 并且用户可以禁用任何插件 从早期启动开始。

            链接:http://help.eclipse.org/help32/index.jsp?topic=/org.eclipse.platform.doc.isv/reference/extension-points/org_eclipse_ui_startup.html

            【讨论】:

            • 是在启动时安装了完整的插件还是只是某种加载器?关于 RAM,我已经配置为使用可以提供给 IDE 的最大内存大小运行。
            • 嗯,这是一个很难回答的问题,理想情况下,整个插件在启动过程中不会被加载,eclipse 只是读取清单文件,除非你使用它,否则不会完成整个加载,但是有些插件可能会有所不同。看到这个链接它有一个很好的解释:ibm.com/developerworks/opensource/library/os-ecspy1
            【解决方案7】:

            当然可以。我们一直在使用 MyEclipse(它基本上是集成了大量插件的 Eclipse),而且开箱即用它的运行速度非常慢。如果您发现性能不可接受,则应禁用任何不使用的功能。

            【讨论】:

              【解决方案8】:

              是的,如果已安装且未停用以在启动时加载,那么启动速度肯定会减慢。我已经非常具体地注意到了这一点。

              【讨论】:

                猜你喜欢
                • 1970-01-01
                • 2014-05-23
                • 1970-01-01
                • 2011-02-23
                • 2021-11-07
                • 1970-01-01
                • 2016-10-16
                • 1970-01-01
                相关资源
                最近更新 更多