如何提高 Netbeans 的性能?

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

它太慢了,当你已经编写了一段时间的代码,它会变得更糟,它会吞噬我所有的内存。


我在 Windows 计算机上,特别是 WindowsServer2008DatacenterEdition x64, 4Gb 内存,3Ghz 酷睿2双核处理器等。我正在使用 x64 JDK。我使用的 NOD32杀毒,因为对我来说,它是最好的机器性能。

在 Task Manager netbeans.exe 中只显示不超过20Mb,java.exe 超过600Mb。

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

如果我的项目需要读取所有文件才能得到类似错误警告、 svn 状态等文件的状态,那么对于 Netbeans 来说,这个项目是不是太大了?我能把这些都关了吗?有没有可能只在我打开一个文件的时候才把它设置为扫描?

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

在 Linux 中,它和在同一台机器上的 Windows 一样慢(Ubuntu 8.04 x64)。

Netbeans 团队确实提高了启动速度,但是当它打开时,它开始缓存 ALL。

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

但还是很慢。

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

它是一台 Windows 公司的机器吗?如果病毒扫描器如此强大,那么它真的可以减慢现代 IDE 的速度。检查您的任务管理器是否有正在使用大量 CPU 或磁盘读取的进程。

还要对你的磁盘进行碎片整理。Netbeans 非常积极地创建一种或另一种形式的缓存。它们中的大多数在某些时候被持久化到磁盘上,这可能会影响启动时间。病毒扫描器(尤其是赛门铁克)、桌面搜索引擎和任何其他侵入性 I/O 产品都可以大大降低性能。

我已经注意到 Netbeans 有时会有些情绪化,而且它的性能在两台规格几乎相同的机器之间会有很大的差异。我的工作机器性能很差,有时不能使用,但是当我在家里的机器上使用它时,它就像闪电一样快(在许多情况下,都是更大的项目)。

如果它在一个公司的机器上-确保缓存不存储在网络上

每个人都应该注意到,Sun 的 Java 虚拟机 Windows 不使用共享内存。这意味着给 VM 的堆越多,它保留给自己的内存就越多。堆越多的优点是垃圾收集越少,也许运行的 Java 应用程序的性能越快,但缺点是其他应用程序可以使用的内存越少,因此您的系统可能会感觉更慢。

一个或多或少的详细描述,为什么 NetBeans 如此缓慢如此频繁地可以在文章中找到:

提高 NetBeans 的性能

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

在我的特殊情况下,我得到了一个不再存在的目录,但 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 太慢了,但是在停用 SVN 插件之后,它现在好多了。 我想这可能会有帮助。

祝你好运

不要在优化 NB 安装上投入时间,只要你可以垂直扩展: 获得一个 SSD (通常更快的硬件)。

另外:

  • 为所有相关文件夹添加一个异常(例如,项目目录,临时目录)到你的反病毒软件(或者更好,删除它)。
  • Don't use network drives for your projects
    • 检查你的本地硬盘是否在本地
    • 检查 IDE 是否使用非本地文件夹(例如 %AppData%)

为了提高 Netbeans 的启动和构建时间,人们应该(按照以下顺序) :

  1. Make sure that one has enough free RAM memory (4GB Windows is enough on my 64-bit system)
  2. 购买一个 额外印花税,它使所有的启动时间和构建时间不同(我的项目构建时间从60秒到6秒!)
  3. Watch out for the 病毒扫描器, they can slow down random file access considerably (make sure they don’t scan your .java and .class files!)
  4. 买你能买到的最快的 处理器

当您的 NetBeans日食 IDE 似乎使用了太多内存时,这个问题的解决方案非常简单:

  1. 禁用不使用的插件。
  2. 关闭你没有工作的项目。

我在 Linux Mint 和 Ubuntu 机器上使用 Netbeans 7.0时也遇到了类似的问题。 Netbeans 使用 > 700 MiB 空间和50-80% 的 CPU。 然后我决定清理一下。 I had 30 plugins installed, and I was not using most of them. 因此,我禁用了我没有使用的插件,我禁用了大量的19个插件。现在内存使用下降到400 + MiB,CPU 使用下降到10,最大达到50% 。

现在我的生活轻松多了。

We can use the following JVM option to make NetBeans load/run bit faster.

JVM 选项: -J-Xverify:none

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

如何设定:

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

  • Find the line that says

    Netbeans _ default _ options = “ ...”

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

  • 重新启动 NetBeans。

停用 Git,Subversion,Local History,拼写检查器和其他未使用的插件

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

这将设置 JVM.Xms 的内存使用量为最小值,而 Xmx 为最大值。

这是 target textfield 的值:

"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 运行得非常快!

另一种在这里尝试更多参考的方法

In the etc directory under your Netbeans-Home, edit the file netbeans.conf file. -Xms and -Xmx 应该增加 to the values that allow your program to compile.

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 更新:

disable win update

  1. Hit Ctrl + R and type Services.msc and press enter.
    • Startup Type排序
    • 选择运行 Automatic的第三方(非窗口)服务,右击,单击 Properties并将启动类型更改为 Manual

services

  • Sort by Status and Stop services from (3rd party) app you think unused

Netbeans 7.3也有同样的问题。* 和 Windows7的7.4测试版。打开和关闭一些插件,我发现是 Svn 插件不断地将 CPU 提高到27% 左右,把我的笔记本电脑变成了一个烤面包机。关闭它,代码再次快乐:)

这对我有用:

Netbeans _ default _ options = “-J-client-J-Xvalid: none-J-Xmx1024m-J-Xss2m-J-Xms256m-J-XX: PermSize = 32m-J-Dnetbeans. logger.sole = true-J-ea-J-Dapple. laf.useScreenMenuBar = true-J-Dapple. awt.images. UseQuartz = true-J-Dsun. java2d.nodraw = true-J-Dsun. java2d.dpiaware = true-J-Dsun.zip. disableMemory 映射 = true-J-Dplugin. manager. update = false-J-Dnetbeans. extBrowser.Manual _ chrome _ plugin _ install = yes”

etc/netbeans.conf中的设置。

Similar to the suggestion to put everything on an SSD.

我从 freeBSD 运行 netbeans。中我的主目录中的 netbeans 缓存文件。网豆。我的主目录挂载在 nfs 上,因此访问速度非常慢。行动。Netbeans 到本地机器的性能大大提高。我加了一个软链接。将我的主目录中的 netbeans 转到本地目录。Netbeans 描述了如何更改用户和缓存器 给你,并将其列为第4项下的一个原因。

在此之前,我可以写完整的句子在评论之前,归赶上并显示他们。键入文本后出现。

最简单的解决办法:

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

使用: 当您需要代码完成时,使用元键 + 代替。

我发现的最大问题是自动代码完成特性。 在我输入时,它一直在尝试运行代码完成。 这会导致性能非常低下,因为我的项目有很多它所依赖的库。

最好的事情是,你可以停止战斗的编辑器,因为它不断拾取在完成弹出窗口的假阳性。

自从我关机后就没回头看过。

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

Netbeans 和其他需要对 JVM 进行调优的 Java 应用程序一样。

Please read the following link to have some benchmark results for netbeans

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

以下设置可以很好地工作在我的 Windows7电脑与4 GB 内存和 I5四核心处理器。

(检查 bin 文件夹中 netbeans 配置文件中的 netbeans _ default _ options 行,并按如下方式替换配置行)

Netbeans _ default _ options = “-XX: TargetSurvivorratio = 1-Xvalid: none-XX: PermSize = 100M-Xmx500m-Xms500m-XX + U seParallelGC ${ netbeans _ default _ options }”

小建议: 垃圾收集在 JVM 堆大小中起着至关重要的作用,因为我有一个四核处理器,所以我使用了并行 GC。如果您有单线程处理器,请使用 UseSerialGC。根据我的经验,如果 Xmx Xms 值相同,那么 JVM 在最小值和最大值之间切换就没有性能开销。在我的例子中,每当我的应用程序大小试图超过500MB 时,并行 GC 就会派上用场来清理不需要的垃圾,这样我的应用程序在我的电脑中永远不会超过500MB。

关于为什么你的 NetBeans 速度慢的真正有用的文章:

Http://wiki.netbeans.org/faqslownetbeans

Here are my netbeans options for etc/netbeans.conf using G1 GC and some other improvements.

Netbeans _ default _ options = “-J-server-J-Xss4m-J-Xms256m-J-Xmx512m-J-XX: PermSize = 256m-J-Dapple. laf.useScreenMenuBar = true-J-Dapple. awt.images. UseQuartz = true-J-Dsun. java2d.nodraw = true-J-Dsun. java2d.dpiaware = true-J-Dsun.zip. disableMemory yMapping = true-J-Xvalid: none-J-XX: + UseG1GC-J-XX: + TieredCompilation-J-XX: + AggresiveOpts-J-Dwing. aatext = true-J-Dawt. useSystemAAFontSettings = lcd-J-Dorg. netbeans.aa.ext. 外提示 = true”

The font settings (swing.aatex and following) are optional - set as you need or remove.

这些设置让我的网豆增加了很多!

NetBeans 8.0.2(PHP)有两个问题: SubVersion 客户机和 树枝模板。 为了彻底提高整体性能,a)禁用“ Twig Template”插件(如果你需要的话,这也会禁用 Symphony2)和 b)用这个开关覆盖 SVN 客户端:

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

Properties 允许单独定义 CLI 参数 (这对 RAM 设置和其他定制也有意义)。猜测一个可以重新启用 Twig 一旦链接的错误报告已经关闭。重新扫描并不是真正的问题,而重新扫描的表现应该是... 在及时的方式。

刚刚进行了一些测试,并注意到,在 Linux 上,与 Oracle JDK 相比,(普通的) OpenJDK 运行得更为平稳——甚至还有一个版本的 NetBeans 与之捆绑在一起。

对我来说,工作了,以启用自动扫描的来源。

我在使用 NetBeans 8.0.2时遇到了很大的问题。这是一个古老的问题,但也许有人会像我一样,在这里与同样的问题,我找不到任何答案,帮助我在任何地方。

我有 NetBeans 8.0.2和 Ruby on Rails 插件,在 Windows 7上。对于我在一些文件中所做的几乎每一次更改,IDE 都会挂起10秒钟。这是问题只与大文件,但它必须取决于更多,还有其他大文件没有问题。

这个问题是由“提示”“ Rails 3弃用”引起的,我关闭了它,现在它非常快,我可以打开 everything其他没有问题。
It's under Tools -> Options -> Editor -> Hints.

另外还对启动参数的优化提出了一些建议。我发现这些关于 JVM 交换机的链接帮助我进行优化测试(但结果是这些设置与我的问题没有任何关系) ,它们非常古老,但有一些有用的信息:
解释 JVM 开关
Some (old) recommendations

验证您的项目文件夹是否包含框架文件或库文件(例如: Laravel 有一个文件夹供应商)-您不直接使用的文件。 点击你的“项目”> 属性。在左边,选择“忽略文件夹”(我不知道如何是在英语,但在“框架”)。 在右边,点击“添加文件夹”,选择的文件夹-这将使您的 Netbeans 8更快。 对我有用。

把你的.Netbeans 文件夹放到一个 Ramdisk 中,Netbeans 的速度将会是难以置信的快。

我在 Ubuntu 16.04上发现每个按键都会导致硬盘读写操作。我有足够的理由使用 Ramdisk。作为一点积极的副作用,我的硬盘现在相当安静(不再滴答滴答滴答滴答滴答滴答) ,而且寿命更长。

打开文件:

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

I added some options shown below:

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

使用 opengl 可以帮助您,这取决于您的系统。我正在运行奥斯 X。2048m 可能太多,但似乎不会造成伤害: ——)。

我决定上次研究一下为什么我的 NetBeans 运行缓慢。

我运行的电脑与16 GB 内存和3.5 GHz 8核心处理器。我的 CPU 使用率大约是5-20% ,内存低于40% ,但 NetBeans 比我藏在车库里的15年前的 PC 还慢。

在找到这个主题并浏览了 http://wiki.netbeans.org/FaqSlowNetBeans之后,我意识到在 NetBeans 的右下角,我一直看到一个条形图,上面写着“正在扫描... ...”,在试图阻止它之后,什么也没有发生,我进一步查看了“正在扫描... ...”在做什么,我意识到:

每次启动 NetBeans,NetBeans 都会自动扫描任何打开的项目。

就是这样,我已经关闭了20个打开的项目,NetBeans 的运行速度和记事本一样快。

尝试使用 VisualVM 分析 Netbeans

-J-Djavax.accessibility.assistive_technologies=" "

这对我很有帮助。

I don't really know why exactly this toolkit used, but looks like it's generally safe to disable it.

Close all the instences you have running. You might not have closed any of them in a while causing them to stack up and run in the background. Therefore causing lag/making the program work slower.

在我的例子中,我通过禁用 Rainbow 获得了巨大的性能优势(这是一个用于在代码中使用括号的插件) :

Tools -> Options -> Miscellaneous -> Rainbow(未选中启用)

使用 Java8在 Netbeans 10上进行了测试。

严重减速的问题只发生在特别大的 Java 文件(超过5000行代码) ,而较小的文件(在1000或2000行代码内)没有问题。

我做了其他的优化,但这一个是最相关的,因为它大大减少了 CPU 的使用量。

最简单的答案是在 $NETBEANS _ HOME/etc/NETBEANS.conf 文件中显式设置 Xms 和 Xmx。对于一般情况,默认的内存分配可以正常工作,但是对于大型项目或大量项目,显式地将这些标志设置为相当高的值可以减轻 NB 在运行期间的启动延迟和运行时延迟。

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