public async Task DecompressAsync(string source, string destination) { using (var dt = _telemetryClient.StartOperation <DependencyTelemetry>("OtherDecompression")) using (var pm = new PerfMon()) { //TODO: Replace this line of code with the call to your compression SDK await Task.Run(() => File.Copy(source, destination)); pm.Stop(); dt.Telemetry.Type = "OtherDecompression"; dt.Telemetry.Properties.Add("source", source); dt.Telemetry.Properties.Add("destination", destination); dt.Telemetry.Properties.Add("run", _config.RunID); dt.Telemetry.Properties.Add("used_cpu", pm.UsedProcessorTime.Ticks.ToString()); dt.Telemetry.Properties.Add("used_memory", pm.UsedMemory.ToString()); } }
public async Task DecompressAsync(string source, string destination) { using (var dt = _telemetryClient.StartOperation <DependencyTelemetry>("DotNetDecompression")) using (var pm = new PerfMon()) using (FileStream originalFileStream = File.OpenRead(source)) using (FileStream decompressedFileStream = File.Create(destination)) using (GZipStream decompressionStream = new GZipStream(originalFileStream, CompressionMode.Decompress)) { await decompressionStream.CopyToAsync(decompressedFileStream); pm.Stop(); dt.Telemetry.Type = "DotNetDecompression"; dt.Telemetry.Properties.Add("source", source); dt.Telemetry.Properties.Add("destination", destination); dt.Telemetry.Properties.Add("run", _config.RunID); dt.Telemetry.Properties.Add("used_cpu", pm.UsedProcessorTime.Ticks.ToString()); dt.Telemetry.Properties.Add("used_memory", pm.UsedMemory.ToString()); } }