Jetbrains PHPStorm TODO 减慢了编辑速度



所以每当我打开TODO显示屏时,在Jetbrains PHPStorm中文件的编辑速度明显变慢

如果我将 TODO 显示切换到其他显示,编辑会再次变得很快

这是因为 PHPStorm 正在扫描编辑的文件,以确定编辑的文件中是否出现新的 TODO。

有没有办法防止 PHPStorm 一直进行此扫描,以便我可以打开 TODO 窗口而不会降低编辑速度?

JetBrains TODO 预先执行了对潜在大量文本的正则表达式搜索,因此如果您的 TODO 中存在耗时的模式,事情可能会大大减慢,甚至挂起。

问题在于可能已定义用于标识 TODO 项的任何正则表达式匹配项。JetBrains IDE 用于匹配这些项目的 Java 标准正则表达式库使用指数复杂度算法来搜索'*.a'和类似模式。

从理论上讲,可以非常快速地匹配任何正则表达式(存在线性算法),>但是许多正则表达式库的开发人员根本不费心实现它。

一般来说,如果你的待办事项

正在降低,请查看你的待办事项中的正则表达式,看看你是否可以缩小匹配范围以提高性能。


顺便说一句,Python re模块也存在同样的问题:

>>> from timeit import timeit
>>> timeit("import re; list(re.finditer('.*a', 'foo' * 10000))", number=1)
0.6927990913391113
>>> timeit("import re; list(re.finditer('.*a', 'foo' * 50000))", number=1)
17.076900005340576

最新更新