我正在使用Tx.Windows
nuget 包来读取性能计数器blg
文件。
https://github.com/Microsoft/Tx
对于小文件,以下代码的结果非常直接,但随着文件大小的增加,读取时间也会增加。对于大尺寸文件(比如 500MB),文件读取所需的时间非常长。
有什么办法可以减少文件读取时间?
using System;
using System.Linq;
using System.Reactive.Linq;
using Tx.Windows;
namespace ConsoleApp3
{
class Program
{
static void Main(string[] args)
{
var observable = PerfCounterObservable.FromFile(@"C:\Files\test.blg");
var grouped = from a in observable
group a by new { a.Machine, a.Instance, a.Timestamp } into groups
from g in groups.ToArray()
select new
{
groups.Key.Machine,
groups.Key.Instance,
groups.Key.Timestamp,
Counters = g
};
var all = grouped.ToEnumerable().ToArray();
Console.ReadLine();
}
}
}
Microsoft Tx
github位置的示例blg文件,
https://github.com/Microsoft/Tx/blob/master/Traces/BasicPerfCounters.blg
在这里测试代码,
https://github.com/Microsoft/Tx/blob/master/Test/Tx.Windows.Tests/PerfCounterTest.cs