1

我正在使用Tx.Windowsnuget 包来读取性能计数器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 Txgithub位置的示例blg文件,

https://github.com/Microsoft/Tx/blob/master/Traces/BasicPerfCounters.blg

在这里测试代码,

https://github.com/Microsoft/Tx/blob/master/Test/Tx.Windows.Tests/PerfCounterTest.cs

4

0 回答 0