我的小程序正在检查网站使用什么类型的脚本,它使用超过 80% 的 cpu i7 处理器。我想知道这正常吗?
代码:
public static class EnginesMatcher
{
public static readonly Regex Drupal1 =
new Regex(
@"/misc/drupal\.js|Drupal\.settings|href=""http://drupal\.org""|\?q=node/[0-9]+|/\?q=user/register|/\?q=user/password|/user/register\?destination|<li class=""collapsed""><a href=""/node/add"">|/dpl3/files/|/modules/node/",
RegexOptions.Compiled);
public static readonly Regex XE1 =
new Regex(
@"XpressEngine|content=""zeroboardXE|content=""xe_board""|var zbxe_session_name|/xe\.css\?2|/xeicon/favicon\.ico""|#xe-editor-container-1|xpress_xeditor",
RegexOptions.Compiled);
//and 60 more such regex
在另一个班级
public async Task<Result> Match(string url)
{
if (!await Open(url).ConfigureAwait(false)) return ResultKey;
if (EnginesMatcher.Drupal1.IsMatch(html))
{
return new Result()
{
Key = AResultKey.Success,
LogFile = "Drupal.txt",
Message = "Drupal",
Url = url
};
}
if (EnginesMatcher.XE1.IsMatch(html))
{
return new Result()
{
Key = AResultKey.Success,
LogFile = "Drupal.txt",
Message = "Drupal",
Url = url
};
}
Match(url) 函数在 ForeachAsyncLoop 中,程序检查大约 4000 个链接/分钟。当我禁用它使用高达 20% cpu 的所有正则表达式时,我可以提高正则表达式的性能吗?强调文本