如何提高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个回答

3
我决定最后一次研究为什么我的NetBeans运行缓慢。
我使用16GB RAM和3.5GHz 8核处理器的PC。我的CPU使用率在5-20%之间,内存低于40%,但NetBeans比我放在车库里的15年旧PC还要慢。
在找到这个主题并查看http://wiki.netbeans.org/FaqSlowNetBeans后,我意识到在NetBeans的右下角,我不断看到一个状态为“扫描...”的栏,尝试停止它却没有反应,我进一步了解了“扫描...”正在做什么,我意识到:
每次我启动NetBeans时,NetBeans都会自动扫描任何打开的项目。
就是这样,我关闭了20个打开的项目,NetBeans运行得就像记事本一样快。

2

在文章中可以找到NetBeans经常变慢的更为详细的描述:

Boost your NetBeans performance

First. check what NetBeans is actually doing on your disk. On a Mac you can issue this command:

  sudo fs_usage | grep /path/to/workspace

In my special case I got a directory which didn't exist any longer, but NetBeans tries to access the folder all the time:

  14:08:05 getattrlist /path/to/workspaces/pii 0.000011 java

Repeated many, many, many times. If you have a similar problem, fix it by deleting your NetBeans cache folder here:

   ~/.netbeans/6.8/var/cache

If your NetBeans.app is still making a lot of disk I/O. Check if it's accessing the subverison folders and svncache.

I had to disable the subversion features with config file:

  ~/.netbeans/VERSION/config/Preferences/org/netbeans/modules/versioning.properties 

add a line:

  unversionedFolders=FULL_PATH_TO_PROJECT_FOLDER  

SOURCE: Netbeans forums

在我看来,这主要与缺失的文件或文件夹以及svncache所导致的大量磁盘I/O有关。


很遗憾,此链接目前已失效。 - Chris Forrence
那些清除缓存的指令对我没用,这个链接可以:如何在NetBeans中清除缓存 - brasofilo

2

我曾经也遇到过Netbeans运行缓慢的问题,但是在禁用SVN插件后情况有所改善。我认为这可能会有所帮助。

祝好运!


如果在Windows上:您能否在Netbeans中停用SVN插件,然后使用Tortoise同步您的存储库?我认为这个解决方案有一个真正的选项,因为提交操作总是会阻止所有其他输入。 - Mateng
我更喜欢使用Colab应用程序而不是Tortoise……但对我来说速度仍然相同。 - gumuruh
移除拼写检查器,twig模板是在完成netbeans.conf步骤后的关键步骤!但您将失去sympony框架!!! - MarcoZen

2

如果这是在公司的机器上 - 确保缓存不存储在网络上。


2

最简单的解决方案:

前往“偏好设置->编辑器”,禁用:自动弹出完成窗口

需要代码完成时,请使用组合键Meta + \。

我发现最大的问题是自动代码完成功能。随着我的打字,它一直试图运行代码完成。由于我的项目依赖于许多库,这导致性能非常慢。

最好的事情是,您可以停止与编辑器抗争,因为它会在完成弹出窗口中捕获错误的提示。

自从我关闭这个功能以来,就再也没有回头了。


谢谢,不完全是那个问题(我已经关闭了它),但它指引了我正确的方向。我也关闭了“自动插入单引号”(NetBeans 8.0.2),这样我就摆脱了在大文件中令人沮丧的冻结。 - 244an
不幸的是,这并没有解决我的问题,只是因为某些原因暂时起作用了。如果有人遇到同样的问题,我将把我的解决方案作为答案添加上去。但是你可以继续投票 :) - 244an
谢谢,我发现我的应用程序中最大的问题是bower、node_modules和tmp目录。对我来说,最好的解决方案是去项目设置中将这些类型的文件夹添加到排除文件夹中。这极大地提高了性能。它可以确保只有NetBeans遍历实际对您的建议有价值的目录。 - Dieter Gribnitz

2

2

这对我来说有效:

netbeans_default_options="-J-client -J-Xverify:none -J-Xmx1024m -J-Xss2m -J-Xms256m -J-XX:PermSize=32m -J-Dnetbeans.logger.console=true -J-ea -J-Dapple.laf.useScreenMenuBar=true -J-Dapple.awt.graphics.UseQuartz=true -J-Dsun.java2d.noddraw=true -J-Dsun.java2d.dpiaware=true -J-Dsun.zip.disableMemoryMapping=true -J-Dplugin.manager.check.updates=false -J-Dnetbeans.extbrowser.manual_chrome_plugin_install=yes"

etc/netbeans.conf中设置。


2

将您的.netbeans主文件夹放入Ramdisk中,Netbeans将变得非常快。

我在我的Ubuntu 16.04上发现每次按键都会导致HDD读写操作。这足以让我使用Ramdisk。一个小的积极副作用是我的HDD现在很安静(不再有tickclickrrickrrrticktick声),并且寿命更长。


2
为了提高Netbeans的启动和构建时间,应该按照以下顺序进行:
  1. 确保有足够的空闲RAM内存(64位系统上4GB Windows就足够了)。
  2. 购买一个SSD,它可以显著缩短启动时间和构建时间(我的项目构建时间从60秒降至6秒!)。
  3. 注意病毒扫描器,它们可能会大幅减慢随机文件访问速度(确保它们不会扫描您的.java和.class文件!)。
  4. 购买最快的处理器

它加载缓慢的主要原因是由于硬盘驱动器速度。购买SSD可能是一个解决方案,但当您只需要加快NetBeans速度时,花大量的钱并不是好选择。从您提供的信息来看,其余的问题都不重要。我有8GB内存,i7四核处理器和没有病毒扫描器,因为我使用的是Linux操作系统,在此情况下,它仍然加载缓慢。在Linux的ext4文件系统上,所有的加载和安装都比NTFS更快......我的硬盘转速为5400 rpm,这就是问题所在。 - Lilian A. Moraru
但问题不仅限于加载时间,也不是针对Linux系统的。如果你真的认为RAM无关紧要,那就试着在1GB的机器上运行Netbeans吧。无论如何,使用SSD可以使所有东西加载更快,不仅仅是Netbeans,这是我最好的投资。 - Kdeveloper
Kdevelop - 你提到的东西都是通用的.. 我认为用户应该优化他们的netbeans.conf文件,然后删除不需要的插件,如拼写检查器等。 - MarcoZen

1
NetBeans 8.0.2(PHP)存在两个问题:SubVersion客户端和Twig模板。为了显著提高整体性能,a)禁用“Twig模板”插件(这也将停用Symphony2,如果您需要的话),并b)使用此开关覆盖SVN客户端:
run.args.extra=-J-DsvnClientAdapterFactory=commandline

^ project.properties 允许单独定义CLI参数(这也可能与RAM设置和其他自定义有关)。我想一旦那个链接的错误报告被关闭,就可以重新启用Twig。重新扫描并不是真正的问题,而扫描会按时执行...

刚刚在测试中发现,在Linux上使用Oracle JDK比(常见的)OpenJDK运行更流畅-甚至看到有一个版本的NetBeans与它捆绑。


移除拼写检查器,twig模板是在完成netbeans.conf步骤后的关键步骤!但您将失去sympony框架!!! - MarcoZen
我没有说过吗?它装了太多垃圾(或者可能是稍微有些冲突的)插件,这使得IDE难以使用——只有通过清理才能获得一个好用的IDE,而不是“等待奇迹的发生”。SVN客户端甚至可以工作——但只有在不递归扫描大型目录结构(1-2层深度表现可接受)时才能工作……否则我会使用SmartSVN,因为它就是好用。 - Martin Zeitler

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