私の小さなプログラムは、Web サイトが使用するスクリプトの種類をチェックしており、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 にあり、プログラムは 1 分あたり約 4000 リンクをチェックします。最大 20% の CPU を使用するすべての正規表現を無効にすると、正規表現のパフォーマンスを向上させることはできますか? 強調されたテキスト