Tool-Tip: dotTRACE

Hui, hier ist ja schon lange nichts mehr passiert seh ich gerade, dann wirds aber mal wieder höchste Zeit für einen Beitrag 😀 Ich war neulich dazu gezwungen mir mal den genauen Start-Ablauf einer von mir entwickelten Anwendung anzuschauen, da diese eine recht lange Ladezeit hatte und ich mir einfach nicht erklären konnte wo die herkommt. Die Anwendung verwendet allerhand Drittanbieter-Bibliotheken, unter anderem auch NHibernate und FluentNHibernate als Aufsatz und ich hatte diese beiden im Verdacht für die schlechte Startperformance verantwortlich zu sein. Natürlich sucht man die Schuld erstmal bei jemand anderem, das ist ja logisch 😉 Nach einigem Google-Consulting bin ich dann darauf gestoßen, dass ich das Problem, wie so oft im Leben, nicht alleine habe und das jemand anders dafür auch schon eine Lösung gefunden hat. Um das Problem zu finden benutzte derjenige einen sogenannten Profiler namens dotTRACE von jetbrains. Dieses Tool zeigt einem exakt welche Schritte seine Anwendung durchläuft und wieviel Zeit diese Schritte gekostet haben. Da sieht man meistens sofort wer für das Performanceproblem verantwortlich ist. Ich hab das dann auch mal installiert und konnte dann das gleiche Problem auch bei mir feststellen. Genial dieses Tool! Tatsächlich war FluentNHibernate schuld. Genauer gesagt war das Problem eine Routine bei der Initialisierung der Konfiguration durch FluentNH. Dank dotTrace konnte ich sehen das da intern beim generieren der Konfiguration ein XML-Dokument erstellt wird, was ein vergleichsweise zeit/rechen-intensiver Vorgang ist. Das macht FluentNH bei jedem Startvorgang, auch wenn sich an der Konfiguration nichts geändert hat. Als Lösung gab er an diese Konfiguration als Binary-File abzuspeichern und diese beim Laden einfach einzuwerfen anstatt FluentNH das immer wieder neu generieren zu lassen und das hat mir letztendlich mehr als die Hälfte der Ladezeit eingespart. Großartig, dafür liebe ich das Internet 🙂 Abschließend muss ich diesem hervorragenden Tool aber noch einen halben Punkt in der B-Note abziehen, für das schlechte Anchoring des Fensters. Aber ansonsten bekommt's von mir eine absolute Empfehlung!