Performanceoptimierung
09.01.2025, 06:41 Uhr
Benchmarking mit dem Visual Studio Profiler
Die aktualisierten BenchmarkDotNet-Diagnosetools in Visual Studio 17.13 ermöglichen Entwicklern, ihre Projekte effizienter zu analysieren. Erfahren Sie, wie Sie mit Benchmarking die Leistung Ihrer Software optimieren können.
(Quelle: EMGenie)
In der neuesten Version von Visual Studio 17.13 Preview wurden die BenchmarkDotNet-Diagnosetools aktualisiert. Diese Neuerung ermöglicht es Entwicklern, leistungsstarke Werkzeuge zu nutzen, um ihre Benchmark-Analysen durchzuführen. Damit wird der Prozess, in dem man messbare Ergebnisse erzielt, Änderungen vornimmt und erneut misst, deutlich beschleunigt und vereinfacht.
Um die neuen Funktionen in der Praxis zu demonstrieren, wird im Blog des Principal Software Engineer Lead Nik Karpinsky an einem realen Projekt, CsvHelper, gezeigt, wie Performance-Analysen helfen können, die Softwareleistung zu verbessern. CsvHelper rangiert unter den 67 beliebtesten Paketen auf Nuget.org mit über 9 Millionen Downloads der aktuellen Version. Demnach könnten Verbesserungen an dieser Bibliothek vielen Entwicklern zugutekommen.
Für die Benchmark-Tests hat Karpinsky ein neues Konsolenprojekt erstellt, das als Basis für die Tests dient, und das BenchmarkDotNet-Paket integriert, um die Benchmark-Läufe durchzuführen. Ein einfaches Benchmark-Szenario umfasst das Parsen eines CSV-Streams in Datensätze. Dieser Benchmark wird weiter optimiert, um die Effizienz der Datenverarbeitung zu erhöhen. Ein spezielles Augenmerk liegt dabei auf der Minimierung des Speicheraufwands, der insbesondere bei der Verarbeitung von grossen CSV-Dateien ins Gewicht fällt.
Zusätzlich wird aufgezeigt, wie man mithilfe des Visual Studio Profilers wertvolle Einblicke in die Leistung seines Codes erhält. In diesem Zusammenhang wird erklärt, wie man mit dem [MemoryDiagnoser] von BenchmarkDotNet den Speicherverbrauch während des Benchmark-Laufs überwachen kann. Durch das Hinzufügen weiterer Diagnosetools können Entwickler die Performance noch präziser analysieren und gezielt optimieren.
Eine der Überraschungen bei der Analyse war die Entdeckung unnötiger Speicherallokationen, die sich auf die Gesamtperformance auswirkten. Karpinsky demonstriert, wie durch gezielte Codeanpassungen der Speicherverbrauch um 14 Prozent reduziert werden konnte, was besonders bei umfangreichen Datensätzen von grossem Vorteil ist.