private void UpdateInfo(Performance.File file) { string[] details = { "Gesamtdauer: " + Units.FormatTime(file.Time(true, true)), "Größe: " + Units.FormatSize(file.FileSize) + " (" + file.Chunks.Count + " Chunks)", "", "Übertragungsrate: " + Units.FormatRate(file.TransmissionRate(true, true)), "... ohne Verzögerung vor Stream: " + Units.FormatRate(file.TransmissionRate(false, true)), "... ohne Verzögerung nach Stream: " + Units.FormatRate(file.TransmissionRate(true, false)), "... ohne Verzögerungen: " + Units.FormatRate(file.TransmissionRate(false, false)), "", "Verzögerung vor Stream: " + Units.FormatTime(file.StreamStartTime), "Verzögerung nach Stream: " + Units.FormatTime(file.EndTime - file.StreamEndTime), "", file.StartEntry.SourcePath + " -> " + file.StartEntry.TargetPath }; detailsTextBox.Text = string.Join("\r\n", details); performanceGraphView.CreateGraph(file); }
public void CreateGraph(Performance.File file) { PointF[] points = new PointF[file.Chunks.Count + 3]; int pointIndex = 0; points[pointIndex++] = new PointF(0, 0); points[pointIndex++] = new PointF(file.StreamStartTime, 0); foreach (Performance.Chunk chunk in file.Chunks) { points[pointIndex++] = new PointF(chunk.TimeSinceFileStart, chunk.BytesTransferred); } points[pointIndex] = new PointF(file.EndTime, file.FileSize); Axis axisX = new Axis() { Range = new Range(0, file.Time(true, true)), Label = "Zeit", Format = (f) => "" + Units.FormatTime((ulong)f) }; axisX.Markers.Add(file.StreamStartTime, Color.Red); axisX.Markers.Add(file.StreamEndTime, Color.Purple); Axis axisY = new Axis() { Range = new Range(0, file.FileSize), Label = "Größe", Format = (f) => Units.FormatSize(f) }; graph = new Graph() { Points = points, AxisX = axisX, AxisY = axisY }; Refresh(); }