Ich habe ein langsames asp.net-Programm ausgeführt. Ich möchte den Produktionsserver profilieren, um zu sehen, was vor sich geht, aber ich möchte den Produktionsserver nicht merklich verlangsamen.
Ist es allgemein üblich, eine Produktionsbox oder nur lokale Entwicklungsboxen zu profilieren? Welche Programme empfehlen Sie, um dies zu erreichen?
Ich kann Ihnen empfehlen, " dynatrace Ajax edition 3 " für das clientseitige Profiling (es ist ein kostenloses und einfaches Tool) zu verwenden ) und " JetBrains dotTrace " für serverseitige Profilerstellung. Dieses Tool verlangsamt den Server nicht, wie ich weiß.
Sie können Tracing
verwenden und es wird empfohlen, diese Dinge auf Ihrem lokalen Rechner zu überprüfen, aber wenn Sie etwas auf dem Server überprüfen möchten, können Sie die Ablaufverfolgung für kurz in Ihrer web.config aktivieren.
Mit der ASP.NET-Ablaufverfolgung können Sie Diagnoseinformationen zu einer einzelnen Anforderung für eine ASP.NET-Seite anzeigen. Mit der ASP.NET-Ablaufverfolgung können Sie den Ausführungspfad einer Seite verfolgen, Diagnoseinformationen zur Laufzeit anzeigen und Ihre Anwendung debuggen. Die ASP.NET-Ablaufverfolgung kann in die Ablaufverfolgung auf Systemebene integriert werden, um mehrere Ebenen der Ablaufverfolgungsausgabe in verteilten und mehrschichtigen Anwendungen bereitzustellen.
Ich denke, die Antwort ist wirklich "es kommt darauf an"! Ich würde damit anfangen, zu überlegen, ob das Programm langsam nur auf dem Produktionsserver läuft oder ob es langsam auf einer Entwicklungsumgebung läuft. Ich würde auch überlegen, wie genau ich meine Entwicklungs- / Testumgebung an die Produktionsumgebung anpassen kann.
Wenn Sie dies getan haben, überlegen Sie, ob es Bereiche gibt, die offensichtliche Engpässe darstellen, die Sie möglicherweise beseitigen können. So, zum Beispiel, ist die ASP.NET-Anwendung von irgendeiner Form der Datenbank unterstützt? Wenn dies der Fall ist, können Sie die Leistung der Datenbank separat überwachen und feststellen, ob das Problem dort liegt.
Als nächstes versuchen Sie, genau zu sein, was Sie mit "langsamer Leistung" meinen. Ist es durchgängig langsam (im Vergleich zu was?), Oder nur wenn Sie bestimmte Aktionen ausführen. Dies kann Ihnen einen weiteren Hinweis geben, wo Ihr Problem liegt, oder zumindest welche Fragen Sie stellen sollten.
Nachdem ich viele dieser Fragen beantwortet hatte, würde ich dann ANTS Performance Profiler ausstechen um zu versuchen, zu profilieren, was vor sich geht. Es hat einen minimalen Aufwand beim Profiling einer Anwendung, und Sie sollten es eigentlich nur für eine relativ kurze Zeit ausführen, da Sie hoffentlich bis zu diesem Punkt spezifischere Fragen haben, die Sie beantworten möchten, oder bestimmte Aktionen, die Sie ausführen möchten eingraben.
Ihre beste Wahl ist Prefix ( Ссылка ). So können Sie alle Ihre SQL-Abfragen, Protokolle, HTTP-Aufrufe und vieles mehr sehen.
Eine weitere Option ist Glimpse oder der Mini-Profiler.