0

执行以下命令后,我的 powershell 固定在 97% CPU 并完全冻结。我能够始终如一地重现这种行为。知道这是一个错误还是我做了一些禁忌?

$anew -match '((.*)+([v]\d{1}\.\d{1}\..*)$)'

$anew 是一个大约 35 行长的数组,它保存来自服务器的配置转储。它看起来类似于:

目录:\aaa.net\builds\directedbuilds\bbbb\ccc\dddd\eee

模式 LastWriteTime 长度名称 ---- ------------- ------ ---- d---- 10/15/2012 6:12 PM v2.1.0.69环境:AB-34 Servers_in_Environment:SERVER01;SERVER02 NgatRootFolder:E:\DIRNAME PFXfilename:star.dom.net.pfx 等...

4

1 回答 1

2

您的模式以 开头,由于回溯(.*)+,这可能会导致 O(n 3 ) 性能。您可能应该使用(^(.*)([v]\d{1}\.\d{1}\..*)$)(没有额外的 + 和锚定)来避免回溯评估非常慢的问题。

于 2012-10-17T23:45:19.540 回答