这段简单的代码在 AMD Athlon X3 上处理 100,000 个事件需要 4.6 秒(i5 更快)。
string queryString = "*";
int eventsCount = 0;
Stopwatch stopWatch = new Stopwatch();
stopWatch.Start();
EventLogQuery eventsQuery = new EventLogQuery("MyLog", PathType.LogName, queryString);
EventLogReader logReader = new EventLogReader(eventsQuery);
for (EventRecord eventInstance = logReader.ReadEvent();
null != eventInstance; eventInstance = logReader.ReadEvent())
{
if (eventInstance.Id == 100) //random event id
++eventsCount;
}
stopWatch.Stop();
Console.WriteLine("Found events: {0}", eventsCount);
Console.WriteLine("Time elapsed: {0}", stopWatch.Elapsed);
为了获得更好的性能,您可以自己或通过 Windows 事件查看器使用正确创建的 XPATH 查询(创建Custom view
而不是选择XML
选项卡)