public async Task Optimised() { for (var i = 0; i < 75; i++) { var newData = ArrayPool <CloudFrontRecordStruct> .Shared.Rent(10000); try { var items = await CloudFrontParserNew.ParseAsync(_filePath, newData); } finally { ArrayPool <CloudFrontRecordStruct> .Shared.Return(newData); } } }
//static void Main(string[] args) => _ = BenchmarkRunner.Run<CloudFrontParserBenchmarks>(); static async Task Main() { var directoryPath = Path.GetDirectoryName(Assembly.GetAssembly(typeof(CloudFrontRecord)).Location); var filePath = Path.Combine(directoryPath, "sample-cloudfront-access-logs.gz"); var newData = ArrayPool <CloudFrontRecordStruct> .Shared.Rent(10000); try { var items = await CloudFrontParserNew.ParseAsync(filePath, newData); } finally { ArrayPool <CloudFrontRecordStruct> .Shared.Return(newData); } }