Dieser Artikel wurde maschinell übersetzt.

Toolbox

Tools und Verfahren für die .NET-Code-Profilerstellung

Terrence Dorsey

Das Codebeispiel herunterladen

Terrence DorseyDer markige Epigram "vorzeitige Optimierung ist die Wurzel allen Übels" hat wurde verschiedentlich in den Jahren Donald Knuth, William Wulf und zugeschrieben c.a.r Hoare. (Es scheint, dass Hoare des Satzes stammt, aber Knuth Kredit wird für die Popularisierung es. Finden Sie unter bit.ly/fW1jWE eine Zusammenfassung der Knuths Gedanken zu diesem Thema.)

Was tut dies bedeutet für Sie, die intrepid.NET-Entwickler? Sollten Sie ignorieren, Leistung und Code entfernt zum Inhalt Ihres Herzens? Empfiehlt es sich, folgen die Launen der IntelliSense und verlassen sich auf immer schnellere Hardware zur Skalierung Ihrer apps?

Nun, nicht.

Ein wichtiger Teil des Tests ist dafür, dass Ihre Anwendung nicht nur ohne Fehler ausgeführt wird, sondern führt auch effizient und entgegenkommend. Das ist, wo Code-Profilerstellung Tools und Techniken ins Spiel kommen. Diese können Sie, als Teil des Builds und Tests, bewerten Ihren Code für Konstruktionen — und Siegwette Störungen —, die sind wahrscheinlich zu Problemen führen. Sie erhalten eine automatische Heads-up, die Sie direkt an den Stellen in Ihrer app zeigt dieser refactoring Notwendigkeit.

Profilerstellung Grundlagen

Ein guter Platz zum Lernen zu starten.NET Profilerstellung ist das Codeprojekt-Artikel von Paul Glavich, "die Leistung der Profilerstellung ein.NET-Anwendung"(bit.ly/fpua6i). Sie erhalten nicht nur einige Grundlagen, auf.NET Profilerstellung aber Glavich führt Sie auch in der Ameisen-Profiler (die wir ein wenig später zu erhalten).

Ein weiterer großartiger Ausgangspunkt ist Amirthalingam Prasanna Blog-Post, "Profiling Ihre.NET-Code"(bit.ly/dDXWsF). Er beginnt durch die Auflistung 10 Gründe, warum sollten Sie Ihren Code Profil, dann führt Sie durch den Prozess unter Verwendung der CLR-Profiler (bit.ly/eSJyWd).

In Brian Long umfangreiche exemplarischen Vorgehensweise von Microsoft.NET Framework-APIs, Profilerstellung ".NET-Internals: die Profilerstellungs-API "(bit.ly/hNEDYP), Sie werden lernen, über-Leistungsindikatoren im Systemmonitor und die entsprechenden APIs. Sie sehen auch erstellen Ihre eigenen einfachen Profilerstellungs-Tools zu veranschaulichen, wie die APIs arbeiten.

Die CLR bietet jetzt umfangreiche Profilerstellungs-Unterstützung, und David Broman zeigt Ihnen, wie es in seinem Blog verwenden post, "Profilern, in-Process Side-by-Side-CLR-Instanzen und eine kostenlose Testumgebung" (bit.ly/dYeRnQ). Unbedingt durch die Archive der Bromans Website lesen – es gibt eine Menge toller Informationen gibt.

Profilerstellung bekommt wirklich wichtig, wenn Sie leistungsfähige tun, skaliert hoch Programmierung. Wenn das up your Alley ist, lesen Sie in der "SC08: Windows HPC: Multi-Core-Parallel Code Profilerstellung in VS2010" Webcast auf Channel 9 (bit.ly/gyeKPi).

Verpassen Sie nicht die Visual Studio-Profiler-Teamblog (blogs.msdn.com/b/profiler) für die Profilerstellung, Tipps, Tricks und aktuelle Ankündigungen.

Effizienter Code schreiben

Natürlich ist eine Möglichkeit, den Schmerz der Tests, Profilerstellung und refactoring Code wiederholt zu vermeiden, in erster Linie eine effizientere Code zu schreiben. Hier sind drei Artikeln, in denen bewährte Methoden zum Schreiben von Anwendungen, die hoffentlich brauchen werden, ein paar weniger läuft durch den Profiler um die Geschwindigkeit zu erreichen, die, der Sie für hofften, erläutert:

  • "Führer zum Verbessern der Codeleistung von in.NET: Teil I "von Satesh Arveti am c# Ecke (bit.ly/gyImk9)
  • "Schreiben effiziente c und C-Code-Optimierung" von Koushik Ghosh auf Codeprojekt (bit.ly/icnYEi)
  • "Writing High Performance.NET-Code"von Juan A Rodriguez und Simonijt Dutta von Intel (intel.ly/fvweaP)

Profilerstellungstools

Dies ist der Toolbox-Rubrik, also lassen Sie uns sprechen Werkzeuge. Software-Profilerstellung Dienstprogramme führen dynamischen Analyse von Anwendungscode, während es ausgeführt wird. Hier sind ein paar freie und kommerzielle Angebote, die Sie möglicherweise für eine Spritztour zu nehmen.

AMD Codeanalyst Performance Analyzer (bit.ly/gAqPeu) ist ein kostenloses Profilerstellungs Tool aus – Sie ahnen es — Advanced Micro Devices Inc. Das lässt Sie profile von C/C++, Fortran, Java und.NET-Code. Es ist speziell zum Optimieren Ihres Codes für Multithread-Ausführung auf AMD-Chipsätze. CodeAnalyst bis 2010 mit Visual Studio 2003 integriert und läuft auf Systemen Windows XP über Windows 7 in X 86- und AMD64-Architekturen.

EQATEC-Profiler (bit.ly/h2hDCF) ist ein Codeprofiler, die speziell für die Herstellung Ihrer.NET-Anwendungen schneller ausgeführt. Es unterstützt die.NET Framework 2.0 und höher, Windows Presentation Foundation (WPF), Silverlight und die.NET Compact Framework. Es ist auch der erste Profiler Windows Telefon 7 Profilerstellungsfeatures im Emulator und auf Geräten anbieten. Kostenlosen und kostenpflichtige Lizenzen stehen zur Verfügung. Finden Sie die Website für Informationen.

EQATEC Profiler

EQATEC-Profiler

JetBrains DotTrace (jetbrains.com/profiler) ist eigentlich eine Sammlung von zwei leichte.NET Profilerstellung apps: dotTrace4 4 Leistung und DotTrace 3.5 Speicher. DotTrace können Sie Ziel-Anwendungen mit der.NET Framework 1.0 bis 4.NET Compact Framework 3.5 und Silverlight 4. Sie können Ablaufverfolgungs-, Probenahme- oder zeilenweise Analyse auf lokalen und remote-Systemen ausführen. DotTrace integriert mit Visual Studio 2005 bis 2010. JetBrains bietet derzeit eine zeitlich begrenzte kostenlose Testversion und eine Reihe von Lizenzierungsoptionen. Finden Sie die Website für Informationen.

Rote Tor ANTS Performance Profiler (bit.ly/g1yVEt) und SlickEdit (bit.ly/h3JzAX) sind eine weitere Reihe von kommerziellen Profilerstellung Tools, die Windows Forms-Anwendungen, ASP zu analysieren.NET Webanwendungen, SharePoint und Silverlight 4. Mit der.NET Framework 4 unterstützt ANTS Performance Profiler CLR Profilerstellung, also Sie anhängen können an ausgeführte Prozesse. Sie erhalten auch Leistungsdaten für SQL-Abfragen von Ihrem Code ausgelöst. Beide Produkte unterstützen die.NET Framework 1.0 durch 4 und Windows XP über Windows 7, und kann direkt von Visual Studio ausgeführt werden. Finden Sie die rote Tor-Website für die Preisfindung.

SmartBear Aqtime Pro (bit.ly/ePmENJ) ist eine Leistung Profilerstellung und Speicher- und Programm zur Zielgruppenadressierung von Debuggen die.NET Framework, Java, JScript und VBScript-Code. AQtime Pro können Sie beide 32 und 64-Bit-Anwendungen profile, und der Profiler kann direkt in Visual Studio 2002 bis 2010 und Embarcadero RAD Studio-Entwicklungsumgebungen integriert werden. AQtime Pro bietet auch einen programmierbaren Debugger mit eine COM-basierten Architektur, so dass Sie benutzerdefinierte Profiler erstellen können. Unterladen Sie eine zeitlich begrenzte kostenlose Testversion her oder für die aktuelle Preise kontaktieren Sie Smart tragen.

SmartBear AQtime Pro

SmartBear AQtime Pro

SlimTune (code.google.com/p/slimtune) ist ein freies, open Source-Profilerstellung und Performance-Analyse-Tool für.NET-Entwicklung. Entwicklung ist derzeit in der Beta, und obwohl Sie sowohl X 86 und X 64 Anwendungen Ziel können, nur Sample-basierte Profilerstellung verfügbar ist. Quellcode ist verfügbar, wenn Sie in ihm selbst zerhacken möchten.

Elektrische Software GlowCode (glowcode.com) ist eine weitere kommerzielle Leistung und Memory Profiler gezielt auf 32- und 64-Bit verwalteten, systemeigenen und gemischten Code in C, C++ oder einer anderen.NET Framework-kompatible Sprache. GlowCode integriert direkt mit Visual Studio 2010, so dass Sie Ihre app Profil können, ohne aus die IDE. Eine zeitlich begrenzte Evaluierungslizenz ist zusammen mit Single-User- und floating-Lizenzen verfügbar. Besuchen Sie die Website für Informationen.

Datenprofilerstellungs-Zugriff

Die Datenschicht der Anwendung benötigt Liebe, auch. Hier sind ein paar Tools und Ressourcen für die Profilerstellung Datenzugriff.

Bei Verwendung von SQL Server 2008 R2, Sql Server Profiler steht als Teil der Installation; Sie können Abfragen, Transact-SQL-Anweisungen und Ausdrücke zu analysieren und so weiter. Andere großen Ressourcen für erste Schritte mit SQL Server Profiler zählen:

  • "Verwenden von SQL Server Profiler" in der MSDN Library (msdn.microsoft.com/library/ms187929)
  • "Einführung in SQL Server 2008-Profiler" von Pinal Dave auf dotnetslackers.com (bit.ly/g5IDA0)
  • "Schritt für Schritt: eine Einführung in SQL Server Profiler" von Susan Harkins bei TechRepublic (tek.io/hTV6Kh)

Wenn Sie SQL Server 2005 oder 2008 Express Edition verwenden, jedoch wird nicht Sie Zugriff auf die Profilerstellungs-Tools enthalten in der vollen Version von SQL Server haben. In diesem Fall sollten Sie einen Blick auf die freie open-Source AnjLab SQL Server Express Edition-Profiler (bit.ly/eNg5oi).

Entität Framework-Profiler (efprof.com) ist für die Analyse und Real-Time-Debuggen Datenzugriff in den Code unter Verwendung von Entity Framework. Es ist ein großes Werkzeug für die Aufdeckung, was wirklich hinter den Kulissen geschieht. Entität Framework-Profiler ist ein kommerzielles Produkt, aber Sie können eine 30-Tage-Testlizenz, es geben einen Wirbel auf eigene Projekte anfordern.

Entity Framework Profiler

Entität Framework-Profiler

Auslastungstests SQL (sqlloadtest.codeplex.com) ist ein CodePlex-Projekt von Visual Studio Team System (VSTS) Ranger-Team zum Generieren von Komponententests von SQL Profiler-Ablaufverfolgungen und Wiedergeben der Datenbankaufrufe aus der Ablaufverfolgung mit Visual Studio-Auslastungstest erstellt. Es ist ein handliches Werkzeug für die Prüfung der Daten-zentrierte Anwendungen, die direkt überprüfbaren Last sind nicht.

Schließlich, vergessen Sie nicht LINQPad (linqpad.net) als ein handliches Werkzeug für die Bewertung von LINQ-Abfragen als auch Ihre c#- und Visual Basic-Code. Während nicht wirklich ein Profiler ist es eine handliche Weise, Iterationen des Codes außerhalb des Kontexts des Projekts durchzuarbeiten.

Terrence Dorsey  ist technische Redakteur des MSDN Magazin*.*Sie können lesen Sie seinen Blog unter terrencedorsey.com oder folgen ihm auf Twitter bei twitter.com/tpdorsey.