如何提高Netbeans的性能?


109

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

当您编码一段时间后,它太慢并且会变得更糟。它吃光了我所有的RAM。


我在Windows计算机上,尤其是Windows Server 2008 Datacenter Edition x64、4Gb RAM,3Ghz Core 2 Duo处理器等。我正在使用x64 JDK。我使用NOD32防病毒软件,因为它对我而言是最佳的计算机性能。

在任务管理器中,netbeans.exe仅显示不超过20 Mb,java.exe则显示不超过600Mb。

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

如果要读取NetBeans的所有文件以获取错误警告,svn状态等文件的状态,我的项目对Netbeans来说是否太大?我可以禁用所有这些吗?是否可以将其设置为仅在打开文件时扫描?

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

在Linux中,与在同一台计算机(Ubuntu 8.04 x64)中的Windows一样慢。

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

(-1)您正在使用哪个版本的Netbeans,您拥有多少RAM,您的操作系统是什么,您安装了多少个Netbeans插件。
Andrei Ciobanu 2010年

您的机器功能强大,绝对不受CPU / RAM的限制。现代PC主要受I / O限制,因此您应检查硬盘参数(队列)。编辑:您应该编辑问题而不是发布答案。
atamanroman

VS或eclipse之类的其他IDE是否可以正常工作?
atamanroman

Answers:


56

当您的NetBeansEclipse IDE似乎使用过多内存时,可以非常简单地解决该问题:

  1. 禁用不使用的插件。
  2. 关闭您不在工作的项目。

我在Linux Mint和Ubuntu机器上都遇到了与Netbeans 7.0类似的问题。Netbeans使用了超过700个MiB空间和50-80%的CPU。然后我决定做一些清理。我安装了30个插件,但并未使用其中的大多数插件。因此,我禁用了我不使用的插件,我禁用了多达19个插件。现在,内存使用的内存可低至400+ MiB,CPU使用的内存可低至10,最大为50%。

现在我的生活变得轻松多了。


4
+1用于关闭您不从事的项目。Netbeans会为每个打开的项目保留一个索引。
Luis Lobo Borobia

@LuisLoboBorobia是否与“禁用”或“卸载未使用的插件”不同?
SaidbakR 2014年

例如,如果插件基于文件更改来做一些资源密集型工作,那肯定会产生影响。就像通过源代码版本控制进行监视一样。我不会启用未使用的插件。
Luis Lobo Borobia 2014年

我不确定,但是我认为这会影响整体效果。例如,我只有我实际使用的插件...
Ravish 2014年

一旦我关闭了其他项目,intellisense便像我曾经希望的那样快活!谢谢你,兄弟!
代达罗斯

51

只要您可以垂直扩展,就不要花时间优化NB安装:获得SSD(通常是更快的硬件)。

也:

  • 将所有相关文件夹(例如,项目目录,临时目录)的例外添加到您的防病毒软件中(或更好的方法是,将其删除)。
  • 不要在项目中使用网络驱动器
    • 检查您的主驱动器是否在本地
    • 检查您的IDE是否使用非本地文件夹(例如%AppData%

29
我必须部分不同意。我的工作笔记本电脑中有8GB RAM,256GB SSD,i5核心CPU以及带有hadoop的大型项目IDE的运行速度如此之慢,以至于我想切换到IDEA。我尝试将Xms,PermSize,交换垃圾收集器加倍并添加一些设置,现在Netbeans可以了!我添加:Dsun.java2d.d3d = false -J-XX:+ UseConcMarkSweepGC -J-XX:+ CMSClassUnloadingEnabled -J-XX:+ CMSPermGenSweepingEnabled。这取决于。SSD很好,也有很大的RAM,但这不完全是IDE的性能。我认为,默认设置对具有许多要解析的库的较大项目不利。
SlovaN 2014年

这完全取决于项目的大小。在平均项目中,快速的硬件(专注于IO)和AV配置的收益超过了摆弄VM参数的机会。但是,对于庞大的项目,这可能会有所不同。
atamanroman 2014年

太好了,非常感谢!我将所需的时间除以2,只是将防病毒文件夹中的项目文件夹排除了。
Julien R.

对我来说,仅将-J-Xmx256m添加到配置文件中对您现在有所帮助。我有很多内存,所以我实际上将其设置为运行Ubuntu 18的512,有关选项信息的好地方:performance.netbeans.org/howto/jvmswitches/index.html
Kyle Coots

是的,可以切换到IDEA。我还听说,Netbeans的5.5 “提高速度” FWIW reddit.com/r/java/comments/1en9ac/...
rogerdpack

24
  • 下载最新的Netbeans
  • 删除所有不需要的插件。
  • 使用最新版本的Java

-当前最新的NetBeans是
6.9.1-

1
如果您有SSD,即使使用常规的HDD,也绝对不能进行碎片整理,但性能几乎没有提高。
Firze

为何如此?尽管现在碎片整理是由Windows 7及更高版本等现代操作系统自动完成的。
可怕的分号

1
@Dreadedsemicolon现代操作系统使用不需要碎片整理的文件系统,也不需要过去的事情。
durduvakis

21

我们可以使用以下JVM选项使NetBeans的加载/运行速度更快。

JVM选项: -J-Xverify:none

  • 此选项告诉JVM在类加载期间不要验证字节码,并避免预加载不必要的类。

如何设定:

编辑文件C:\Program Files\NetBeans <version>\etc\netbeans.conf (如果已将NetBeans安装文件夹安装在其他位置,请检查该文件)

  • 找到那行说

    netbeans_default_options =“ ...”

  • 将选项添加到选项-J-Xverify:none列表。

  • 重新启动NetBeans。


10
我对Google进行了搜索,Xverify:none前4个结果中的3个都说永远不要设置它。我对JVM一无所知,也不知道这是多么的真实,但是在这里留下此评论是为了警告人们不要盲目复制和粘贴它而不研究其实际作用
Andy

15

停用Git,Subversion,本地历史记录,拼写检查器和其他未使用的插件


1
大多数人的表现都还不错,也没有摆脱git对我来说是不行的。实际上,我很想在工作日之间不关闭netbean,因此不必每次都等待加载过程。
svarog 2014年

5

我使用Windows7。建议右键单击NetBeans快捷方式,转到“属性”,然后在“目标”的“快捷方式”选项卡上,添加-J-Xmx1024m -J-Xms256m

这将设置JVM的内存使用率。Xms是最小值,而Xmx是最大值。

这是目标文本字段的值:

"C:\Program Files\NetBeans 7.1\bin\netbeans.exe" --jdkhome "C:\Program Files\Java\jdk1.6.0_10" -J-Dorg.netbeans.modules.php.dbgp.level=400 -J-Xmx1024m -J-Xms256m

由于添加了该属性,因此我的NetBeans运行得非常快!

尝试其他方法的另一种方法

etc下方的目录中Netbeans-Home,编辑文件netbeans.conf文件。-Xms-Xmx 应增加到允许您的程序进行编译的值。

netbeans.conf中的说明:

# Note that default -Xmx and -XX:MaxPermSize are selected for you automatically.
# You can find these values in var/log/messages.log file in your userdir.
# The automatically selected value can be overridden by specifying -J-Xmx or
# -J-XX:MaxPermSize= here or on the command line.

将值放在netbeans_default_options字符串中。范例:

netbeans_default_options="-J-client -J-Xss2m -J-Xms32m -J-XX:PermSize=32m -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-Dsun.awt.disableMixing=true -J-Dswing.aatext=true -J-Dawt.useSystemAAFontSettings=lcd --laf Nimbus"

如何加快/释放内存窗口:

  1. 禁用Windows更新:

    • 打开任务管理器,打开选项卡服务,禁用Windows Update:

禁用胜利更新

  1. 命中 Ctrl + R 和类型Services.msc,然后按回车。
    • 排序方式 Startup Type
    • 从运行的第3方(非Windows)中选择服务Automatic,右键单击,单击Properties并将启动类型更改为Manual

服务

  • 排序Status并停止您认为未使用的(第三方)应用程序的服务

2
这是做什么的?请也提出一些解释。
Starx 2013年

1
这将设置JVM的内存使用率。Xms是最小值,而Xmx是最大值。我不知道这种调整的效果如何(我刚刚发现了它),但是显然您应该根据硬件调整这些值。
Thibault Witzig 2014年

4

它是公司的Windows计算机吗?如果这样的话,那么激进的病毒扫描程序实际上会降低现代IDE的速度。检查您的任务管理器,以了解正在使用大量CPU或磁盘读取的进程。


10
嗯...在公司的PC上禁用病毒扫描程序并不是提高性能的真正选择。
Stroboskop 2010年

4

每个人都应注意,Sun的Windows Java虚拟机不使用共享内存。这意味着您给虚拟机提供的堆越多,其自身保留的内存就越多。堆更多的优点是减少了垃圾回收,也许正在运行的Java应用程序的性能更快,但是缺点是其他应用程序的内存可能较少,因此您的系统可能会变慢。


2
实际上,更多的堆实际上意味着更多的gc“世界停止”时间,因为gc必须扫描整个堆以查找“垃圾”对象。这可以通过使用其他gc来克服。
文森特

3

同时对磁盘进行碎片整理。Netbeans在创建一种形式或另一种形式的缓存方面非常积极。它们中的大多数会在某个时间或另一个时间持久保存在磁盘上,这可能会影响启动时间。病毒扫描程序(尤其是Symantec),台式机搜索引擎以及任何其他侵入式I / O产品都会大大降低性能。

我注意到Netbeans有时可能会让人感到脾气暴躁,并且在具有几乎相同规格的两台计算机之间,其性能可能会有很大差异。我的工作机器性能很差,有时无法使用,但是当我在家用机器上使用它时,它的闪电般快速(很多情况下有更大的项目)。


实际上毁了PC的工作,对netbeans并没有做任何事情,但是使其他一切都变得更快
svarog 2014年

3

这是我etc/netbeans.conf使用G1 GC的 netbeans选项和其他一些改进。

netbeans_default_options =“-J服务器-J-Xss4m -J-Xms256m -J-Xmx512m -J-XX:PermSize = 256m -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-Xverify:none -J-XX:+ UseG1GC -J-XX:+ TieredCompilation- J-XX:+ AggressiveOpts -J-Dswing.aatext = true -J-Dawt.useSystemAAFontSettings = lcd -J-Dorg.netbeans.editor.aa.extra.hints = true”

字体设置(swing.aatex及其后)是可选的-根据需要设置或删除。

这些设置大大提高了我的netbeans!



2

为了改善Netbeans的启动和构建时间,应该(按此顺序):

  1. 确保一个人有足够的可用RAM内存(在我的64位系统上,4GB Windows足够)
  2. 购买SSD,它将使启动时间和构建时间完全不同(我的项目构建时间从60秒缩短到6秒!)
  3. 当心病毒扫描程序,它们会大大降低随机文件访问的速度(确保它们不扫描您的.java和.class文件!)
  4. 购买最快的处理器,即可上手。

它很难加载的主要原因是硬盘速度。购买SSD是一种解决方案,但如果您只需要加快NetBeans的速度就不得不花很多钱,那将不是一个好选择。其余内容与您所说的无关紧要。我有8 GB的Ram,i7 Quadro且没有病毒扫描程序,因为我在Linux上,并且无论如何它都很难加载。+在Linux的ext4上,所有加载和安装的速度都比在NTFS上快...我的HDD的转速为5400 rpm,这就是问题所在。
莉莲·莫拉鲁

但是问题不仅限于加载时间,也不限于Linux系统。而且,如果您真的认为RAM没关系,请尝试在1GB的计算机上运行Netbeans。无论如何,使用SSD不仅可以加快Netbeans的速度,而且可以使所有内容加载得更快,这是我有史以来最好的投资。
Kdeveloper 2012年

KDevelop的-你提到的事情是通用的。我认为用户应该OPTIME其netbeans.conf文件,然后删除不需要的插件,像拼写检查等
MarcoZen

2

我也遇到了同样的问题,即Netbeans的运行速度如此之慢,但是现在在停用SVN插件后情况要好得多。我认为这可能会有所帮助。

祝好运


如果在Windows上:是否可以在Netbeans中停用SVN插件,然后使用Tortoise同步存储库?我在此解决方案中看到了一个真正的选择,也是因为提交操作始终会阻止所有其他输入。
马滕2011年

我宁愿使用colab应用程序,也不愿使用乌龟……。但是对于我来说速度还是一样。
gumuruh 2012年

完成netbeans.conf步骤后,删除Spellchecker和树枝模板是关键的一步!但是你会失去交响框架!
MarcoZen 2015年

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 =是“

中的设置etc/netbeans.conf



2

或多或少的详细说明,为什么NetBeans这么慢,可以在本文中找到:

提升您的NetBeans性能

第一。检查NetBeans在磁盘上实际正在做什么。在Mac上,您可以发出以下命令:

  sudo fs_usage | grep /path/to/workspace

在我的特殊情况下,我得到了一个不再存在的目录,但是NetBeans一直尝试访问该文件夹:

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

重复了很多很多次。如果您有类似的问题,请通过在此处删除NetBeans缓存文件夹来解决此问题:

   ~/.netbeans/6.8/var/cache

如果您的NetBeans.app仍在进行大量磁盘I / O。检查它是否正在访问subverison文件夹和svncache。

我必须使用配置文件禁用Subversion功能:

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

添加一行:

  unversionedFolders=FULL_PATH_TO_PROJECT_FOLDER  

消息来源:Netbeans论坛

恕我直言,这主要与由于缺少文件或文件夹以及svncache导致的大量磁盘I / O有关。


不幸的是,该链接当前无效。
克里斯·福伦斯

那些清除缓存的指令对我不起作用,但它确实起作用:如何清除NetBeans中的缓存
brasofilo 2014年

2

将您的.netbeans Homefolder放到Ramdisk和Netbeans中,它的速度很快。

我在Ubuntu 16.04上检测到每次按键都会导致HDD读取或写入操作。我应该使用Ramdisk的原因。作为一个积极的副作用,我的HDD现在已经可用(不再有tickclickrrickrrrticktick),并且使用寿命更长。


2

我上次决定研究NetBeans运行缓慢的原因。

我正在使用16GB内存和3.5GHz 8核处理器的PC。我的CPU使用率约为5-20%,内存低于40%,但NetBeans的速度却比我藏在车库里的15年历史的PC慢。

找到该主题并浏览了http://wiki.netbeans.org/FaqSlowNetBeans之后,我意识到在NetBeans的右下角,尝试停止该操作后,我一直看到一个标有“ Scanning ...”的栏,并且没有任何反应,我进一步查看了“ Scanning ...”正在做什么,并且我意识到:

每次启动NetBeans时,NetBeans都会自动扫描所有打开的项目。

在这里,我已经关闭了20个打开的项目,并且NetBeans的运行速度与记事本一样快。


1

类似于将所有内容都放在SSD上的建议。

我从freeBSD运行netbeans。netbeans缓存文件位于我的.netbeans主目录中。我的主目录挂载在nfs上,因此访问速度非常慢。将.netbeans移至本地计算机可大大提高性能。我在主目录中的.netbeans中添加了到本地目录的软链接。Netbeans 在此处描述了如何更改usedir和cachedir 并将其列为第4项中的原因。

在此之前,我可以在gui赶上并显示它们之前在注释中写下整个句子。输入文字后出现。


1

最简单的解决方案:

转到“首选项”->“编辑器并 禁用:自动弹出完成”窗口

当需要代码完成时,请使用:Meta键+ \代替。

我发现的最大问题是自动代码完成功能。在我键入内容时,它一直试图一直运行代码完成功能。因为我的项目有很多依赖的库,所以这确实导致性能下降。

最好的事情是您可以停止与编辑器打架,因为它会在完成弹出窗口中不断出现误报。

自从我关闭此功能以来,没有回头。


谢谢,不是完全正确(我已经关闭了它),但是它使我朝着正确的方向前进。我还关闭了“ Insert Single Proposals Automatically”(NetBeans 8.0.2),摆脱了大文件中令人沮丧的冻结问题。
244年

不幸的是,这并不能解决我的问题,它只是出于某种原因暂时起作用。如果其他人遇到相同的问题,我将添加我的解决方案作为答案。但是您可以继续投票:)
244年

谢谢,我发现我的应用程序中最大的问题是bower,node_modules和tmp目录。对我而言,最好的解决方案是转到项目设置,然后将这些类型的文件夹添加到排除的文件夹中。这大大提高了性能。确保只有netbeans爬网目录才能真正为您的建议增加价值。
Dieter Gribnitz

1

NetBeans 8.0.2(PHP)有两个问题:SubVersion客户端和Twig模板。为了彻底改善整体性能,a)禁用“ Twig Templates”插件(如果需要,它也会停用Symphony2),b)使用此开关覆盖SVN客户端:

run.args.extra=-J-DsvnClientAdapterFactory=commandline

^ project.properties使您可以分别定义CLI参数(这对于RAM设置和其他自定义也可能有意义)。猜测一旦链接的错误报告已关闭,便可以重新启用Twig。重新扫描并不是真正的问题,而重新扫描则应按时执行。

刚刚进行了更多测试,并注意到,在Linux上,它与Oracle JDK相比,比(常见的)OpenJDK运行起来更流畅-甚至捆绑了一个版本的NetBeans。


完成netbeans.conf步骤后,删除Spellchecker和树枝模板是关键步骤!但是您将失去交响框架!
MarcoZen 2015年

我不是说吗?糟糕的(或可能略有冲突的)插件太重载了-除草是使IDE可以使用的唯一机会-而不是“等待发生的事情”。SVN客户端甚至可以工作-但仅在不让它递归扫描大型目录结构(可接受1-2级深度)的情况下...否则我将使用SmartSVN,因为它可以工作。
马丁·泽特勒

0

Windows 7上的Netbeans 7.3。*和7.4 Beta遇到相同的问题。打开和关闭某些插件,我发现这是svn插件,它将CPU不断提高到大约27%,从而将笔记本电脑变成了烤面包机。将其关闭,然后再次编码开心:)


0

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

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

请阅读以下链接以获取有关netbeans的一些基准测试结果

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

以下设置在具有4GB RAM和I5四核处理器的Windows 7 PC上正常运行。

(在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

对我来说,可以启用源自动扫描。


0

我在使用NetBeans 8.0.2时遇到了很大的问题。这是一个古老的问题,但也许其他人也会像我一样遇到同样的问题,而我却找不到任何可以帮助我的答案。

在Windows 7上,我具有带Ruby on Rails插件的NetBeans 8.0.2,几乎在某些文件中所做的每个更改都使IDE挂起了10秒钟。仅大文件才有问题,但它还必须依赖更多,还有其他大文件也没有问题。

问题是由“提示”“ Rails 3 Deprecations”引起的,我关闭了它,现在它非常快,我可以打开其他所有东西而没有问题。
在下Tools -> Options -> Editor -> Hints

使用启动参数进行优化的其他答案中也有一些建议。我找到了有关JVM开关的这些链接,这些链接在测试优化时对我有帮助(但事实证明,这些设置与我的问题无关),它们很旧,但是有一些有用的信息:
JVM开关的说明
一些(旧)建议


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

尝试使用VisualVM来分析Netbeans。如果“热点”是org.gnome.accessibility.atkwrapper.emitsignal(),请尝试使用以下命令运行Netbeans:

-J-Djavax.accessibility.assistive_technologies=" "

对我而言,这很有帮助。

我真的不知道为什么要使用这个工具箱,但是禁用它看起来通常是安全的。


0

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


-1

验证项目文件夹是否具有包含框架文件或库文件的文件夹(例如:Laravel有文件夹供应商)-您不直接使用的文件。单击“项目”>“属性”。在左侧,选择“忽略文件夹”(我不全英文,但是在“ Frameworks”之前)。在右侧,单击“添加文件夹”,选择de文件夹-这将使您的Netbeans 8更快。这个对我有用。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.