当前位置: 首页 > 知识库问答 >
问题:

IntelliJ在处理大文件时速度非常慢

洪黎昕
2023-03-14

我使用的是Guidewire开发工作室(基于IntelliJ的IDE),在处理大文本文件(~1500行及以上)时速度非常慢。我也尝试了一个开箱即用的社区IntelliJ,但遇到了同样的问题。

当我打开这些文件时,键入一个字符需要 1 秒,即使我清楚地看到使用的内存仍然足够 (1441 MB/3959 MB)。此外,如果我打开多个文件,它会迅速吸收所有内存(我只为 IntelliJ 分配 4GB)。智能感知和其他自动的东西也非常慢。

我喜欢IntelliJ,但在这种条件下工作实在太难了。有办法解决这个问题吗?我想到了一些替代方案,比如:

  1. 在另一个编辑器(例如:记事本)上编辑大文件,然后在IntelliJ上重新加载它
  2. 打开另一个小文件,在那里复制你的代码,编辑它,然后复制回来。这将有所帮助,因为可以维护智能感知和代码突出显示,但是这很麻烦

我确实关闭了所有不必要的插件,只留下了那些必要的插件,但没有什么改善。

我还想知道我是否可以在IntelliJ中“嵌入”一些外部编辑器?例如Notepad,Notepad2?我做了功课并搜索了一下,但没有找到允许这样做的插件/配置

有没有有经验的人可以给我一些建议,如何在IntelliJ中处理大文件(不发疯)?

更新:通过我的研究,我了解到IntelliJ可以中断非常大的文件(如20mb)等。但我的文件没那么大。它只有大约100KB-1MB,但它是非常长的文本。

更新2在尝试按照Sajidkhan的建议增加堆内存后(我更改了idea64.vmoptionsidea.vmoptions),我意识到IntelliJ不接受更改。内存堆被卡在最大3GB。

另一方面,当系统仅使用大约 ~1GB 的堆内存时,可以感觉到性能缓慢,因此我认为问题与内存问题无关。

共有3个答案

吉栋
2023-03-14

在不同的PC上进行了测试。即使在快速处理器上,编辑器在处理大文件(2000行代码)时也非常缓慢。

Eclipse,Netbeans 绝对没问题。调整 .vmoptions 无济于事。

此错误仍未修复:https://intellij-support.jetbrains.com/hc/en-us/community/posts/206999515-PhpStorm-extremely-slow-on-large-source-files

更新。尝试使用默认设置的32位版本。通常32位的想法工作得更快,占用的内存更少。

柳灿
2023-03-14

您可以尝试在 bin 文件夹中编辑 idea64.vmoptions 吗?您可以将最大堆和最大PermGen设置为更高的值

别忘了重启!

仲孙温文
2023-03-14

在围绕灌木丛工作了一段时间后,我找到了一个变通方法。

当我检查类似问题的其他答案时,我发现当文件大小至少为几兆字节时,它们开始出现问题。这没有意义,因为当文件只有几千字节时,我就遇到了麻烦。经过更仔细的检查,我发现< code>Gosu插件是罪魁祸首:在我将我的Gosu文件标记为“纯文本”后,速度变得正常。

所以我猜问题与代码荧光笔有关

  1. 右键单击文件并将其标记为纯文本
  2. 关闭文件并再次打开,然后编辑

注意:由于它适用于Guidewire开发套件中的所有文件类型,您可能需要将一些长文件永久标记为纯文本,尤其是*。属性(又名i18n/国际文件)。代码自动完成器的好处不值得麻烦。

 类似资料:
  • 问题内容: 我正在使用Java为某些文件生成MD5哈希。我需要为多个文件生成一个MD5,总大小约为1 GB。这是我的代码: } 这似乎永远存在。如何提高效率? 问题答案: 您可能要使用Fast MD5 库。它比Java内置的MD5提供程序快得多,并且获取哈希的过程非常简单: 请注意,速度较慢也可能是由于文件I / O速度较慢所致。

  • https://github.com/yeahnoob/perl6-perf 中的代码宿主,如下所示: 在“wordpairs.txt”很小的情况下运行良好。 但是当“单词对.txt”文件大约有140,000行(每行,两个单词)时,它的运行非常非常慢。它不能自己完成,即使在运行20秒后也是如此。 它有什么问题?代码中是否有任何错误??感谢任何人的帮助! 代码(目前,2014-09-04): 运行时

  • 问题内容: 我一直在考虑使用Python进行快速手牌评估。在我看来,加快处理速度的一种方法是将所有牌面和西服表示为质数,然后将它们相乘以表示手: 和 这将为每只手提供一个数值,通过模可以告诉我手中有多少个国王或有多少个心。例如,任何有五个或更多球杆的手都会平均除以;任何有四位国王的手将平均除以,依此类推。 问题在于,像这样的七张牌手的散列值约为62.7万亿次,这将需要超过32位才能在内部进行表示。

  • 我正在尝试加载一个由Thrift自动生成的大型java文件(大约240,000行,7.5mb)。我收到一条错误消息“文件大小超过配置限制(2560000)。代码洞察功能不可用。”现在我知道我应该转到idea.properties文件并更改行 idea.max.intellisense.filesize=2500 到一个很大的数字。然而,如果我为这个文件启用了Code insight,它的加载和滚动

  • 上周,我决定尝试Perl6,并开始重新实现我的一个程序。我不得不说,Perl6对于对象编程来说非常容易,这对我来说是Perl5非常痛苦的一个方面。 我的程序必须读取和存储大文件,如整个基因组(高达3 Gb或更多,见下面的例子1)或制表数据。 代码的第一个版本是通过逐行迭代以Perl5的方式制作的(“基因组.fa”。对于正确的执行时间,它非常慢且不可行。 所以经过一点RTFM之后,我改变了文件上的s

  • 问题内容: 我正在查询有关的信息。 我正在迭代一个数组,并查询列表中的每个值。 不幸的是 ,在调试器下, 单个查询大约需要3-4秒,而 在禁用调试器的情况下, 查询时间要 短一些。 任何想法为什么这么慢?我使用进行测试。 这是我的代码: 更新资料 当我离开时,评估很快就完成了,但是我没有得到。它返回一个空字符串… 问题答案: 感谢@nvrmnd我尝试了一下,发现了一种更好的解析器: VTD-XML