如何提高Netbeans性能?

116

有没有一种真正的方法让Netbeans加载和工作更快?

它太慢了,当你编码一段时间后变得更糟。它吃掉我所有的RAM。


我正在使用Windows机器,具体来说是Windows Server 2008数据中心版x64,4GB RAM,3GHz Core 2 Duo处理器等。我正在使用x64 JDK。我使用NOD32防病毒软件,因为对于我来说,它是机器性能最好的。

在任务管理器中,netbeans.exe只显示不到20 MB,而java.exe则超过600 MB。

我的项目是一个J2EE Web应用程序,有500多个类,仅包括项目库(外部文件)不包含在内。当我说慢时,我的意思是Netbeans冻结了3、4、5分钟或更长时间。

如果它必须读取所有文件以获取文件状态(如错误警告、svn状态等),那么我的项目是否对Netbeans来说太大了?我能否禁用所有这些功能?是否可以设置为仅在打开文件时扫描?

我的CPU使用率通常为30%,并且所有工具都已打开,我的意思是Netbeans、MS SQL Manager、记事本、XMLSpy、任务管理器、Delphi和VirtualBox等。Netbeans比我的虚拟化系统占用更多的RAM。

在Linux中,它与Windows相同的机器一样慢(Ubuntu 8.04 x64)。

Netbeans团队改善了启动速度,但是当它打开时,它开始缓存全部内容。

我已经使用了一些JVM参数来设置高内存使用率和其他参数:"C:\ Program Files \ NetBeans Dev \ bin \ netbeans.exe" -J-Xms32m -J-Xmx512m -J-Xverify:none -J-XX:+ CMSClassUnloadingEnabled,但仍然很慢。


以下是一些问题,可以帮助我们更好地解决您的问题 :-)您能告诉我们您有多少RAM?使用什么操作系统?TaskManager显示Netbeans的情况如何?您的项目有多少个类?当您说慢时,您能以分钟、秒为单位给我们吗? - anjanb
你的机器听起来足够强大。它比我的快得多,我可以以很好的速度运行NetBeans。 唯一想到的是你正在使用64位操作系统。你是否在使用64位Java JDK? - s3v1
你使用的Netbeans版本是多少,你有多少RAM,你的操作系统是什么,你安装了多少个Netbeans插件。 - Andrei Ciobanu
你的机器很强大,绝对不会受到CPU/RAM限制。现代计算机大多数是I/O受限的,因此您应该检查您的硬盘驱动器参数(队列)。编辑:您应该编辑您的问题而不是发布答案。 - atamanroman
其他像VS或Eclipse这样的集成开发环境正常工作吗? - atamanroman
移除拼写检查器,twig模板是在完成netbeans.conf步骤后的关键步骤!但您将失去sympony框架!!! - MarcoZen
31个回答

1
类似于将所有东西放在SSD上的建议。
我在freeBSD上运行netbeans。 netbeans缓存文件位于我的主目录中的.netbeans中。我的主目录通过nfs挂载,因此访问速度非常慢。将.netbeans移动到本地机器可以极大地提高性能。我在主目录中添加了一个指向本地目录的软链接。Netbeans描述了如何更改usedir和cachedir here,并将其列为第4项下的一个原因。
在此之前,我可以在GUI赶上并显示它们之前写完整的评论句子。现在文字随着我打出来就会出现。

1

对于Windows - 也适用于其他操作系统

Netbeans就像任何需要调整其JVM的Java应用程序一样。

请阅读以下链接以获取Netbeans的一些基准测试结果。

https://performance.netbeans.org/reports/gc/

以下设置在我的Windows 7电脑上(4GB RAM和I5四核处理器)运行良好。
(在bin文件夹中的netbeans配置文件中查找netbeans_default_options行,并将配置行替换为以下内容)
netbeans_default_options="-XX:TargetSurvivorRatio=1 -Xverify:none -XX:PermSize=100M -Xmx500m -Xms500m -XX+UseParallelGC ${netbeans_default_options}"
小建议:垃圾收集在JVM堆大小中起着至关重要的作用,因此我使用了并行GC,因为我有四核处理器。如果您有单线程处理器,请使用UseSerialGC。从我的经验来看,如果Xmx Xms值相同,则JVM在最小值和最大值之间切换时没有性能开销。在我的情况下,每当我的应用程序大小试图超过500MB时,并行GC就会派上用场,清理不需要的垃圾,因此我的应用程序永远不会在我的PC上超过500MB。

0

我在使用NetBeans 8.0.2时遇到了很大的问题。虽然这是一个老问题,但也许还有其他人像我一样遇到了同样的问题,而且我在任何地方都找不到能帮助我的答案。

我在Windows 7上安装了带有Ruby on Rails插件的NetBeans 8.0.2。几乎每次更改某些文件时,IDE都会挂起10秒钟左右。这只是针对大文件的问题,但它必须依赖于更多因素,因为其他大文件没有这个问题。

问题是由“提示”“Rails 3 Deprecations”引起的,我关闭了它,现在速度非常快,我可以打开所有其他功能而不会出现问题。
它在工具->选项->编辑器->提示下。

其他答案中还有一些关于使用启动参数进行优化的建议。我在测试优化时发现了这些关于JVM开关的链接(但结果表明这些设置与我的问题无关),它们非常古老但包含了一些有用的信息:
JVM开关解释
一些(古老的)建议


0
尝试使用VisualVM对Netbeans进行分析。如果“热点”是org.gnome.accessibility.atkwrapper.emitsignal(),请尝试使用以下命令运行Netbeans: -J-Djavax.accessibility.assistive_technologies=" " 在我的情况下,这非常有帮助。
我不太清楚为什么要使用这个工具包,但似乎通常可以安全地禁用它。

0

打开文件:

/Applications/NetBeans/NetBeans\ 8.0.2.app/Contents/Resources/NetBeans/etc/netbeans.conf

我添加了以下选项:

netbeans_default_options="-J-Dsun.java2d.opengl=true -J-Dsun.java2d.d3d=false -J-Xmx2048m ...

根据您的系统,使用opengl可能会有所帮助。我正在运行OsX。2048m可能太多了,但似乎没有问题:-) ...


0

最简单的解决方法是在$NETBEANS_HOME/etc/netbeans.conf 文件中显式设置Xms和Xmx。对于一般情况,默认的内存分配可以正常工作,但是对于大型项目或大量项目,显式设置这些标志为相当高的值将缓解启动滞后和NB在操作期间运行时停顿的许多问题。

例如,在我的工作站上,我通常将NB设置为Xms = 768m,Xmx为1536m以上。显然根据您的需求和要求进行调整,但这应该提供一个不错的起点。


0

在Windows 7上,我使用Netbeans 7.3.*和7.4 Beta时遇到了同样的问题。通过开关一些插件,我发现是svn插件不断占用CPU,将我的笔记本电脑变成了一个烤面包机。关闭它后,又可以愉快地编码了 :)


0

对我来说,启用源代码的自动扫描是可行的。


0
在我的情况下,通过禁用 Rainbow(一种用于代码中颜色括号的插件),我获得了巨大的性能优势: 工具 -> 选项 -> 杂项 -> Rainbow (取消勾选启用)
在使用 Java 8 的 Netbeans 10 上进行测试。
严重减速的问题仅出现在特别大的 Java 文件(超过 5000 行代码)中,而在较小的文件(1000 或 2000 行代码以内)中则没有问题。
我进行了其他优化,但这是最相关的一个,因为它极大地减少了 CPU 的使用量。

0

关闭所有正在运行的实例。您可能已经有一段时间没有关闭它们,导致它们堆积并在后台运行。因此会导致延迟/使程序工作变慢。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接