Ein neues Tool zur Analyse von Debug-Protokollen zur Hand

Automatisch übersetzt von Deepl

Mit 4D v17 R5 haben wir die Debug-Protokolle verbessert, indem wir Methoden hinzugefügt haben und es ermöglichen, dass jeder Prozess unabhängig verfolgt werden kann. Mit diesem R-Release sind wir noch einen Schritt weiter gegangen und haben ein Tool zur Analyse der Debug-Protokolle bereitgestellt, mit dem Sie die Prozessausführung überwachen können. Sie werden sehen können, welche Prozesse am meisten verbrauchen, die Aufrufkette mit der entsprechenden Laufzeit und vieles mehr.

HDI: Debug Logs Analyzer

In diesem Blog-Beitrag betrachten wir ein Szenario, in dem wir herausfinden müssen, warum es langsame Antworten von einer Datenbank gibt, die dynamische Webseiten bereitstellt.

Einige Benutzer haben bemerkt, dass die Website manchmal langsam ist, können aber keine genaueren Angaben machen. Es gibt mehrere Möglichkeiten, das zu untersuchen, also sehen wir uns das mal an und versuchen herauszufinden, was los ist!

Debug-Protokolle generieren

Der Debug Logs Analyzer basiert auf dem 4D v14 Debug Logs Dateiformat. Um die Protokollierung zu aktivieren, verwenden Sie einfach den folgenden Code:
//debug logging activated with parameters (option 2), 4D v14 file format (option 4), and postponed writing (option 8)
SET DATABASE PARAMETER
(Debug log recording;2+4+8)

Denken Sie daran, dass Sie ab 4D v17 R5 das Debugging für einen einzelnen Prozess aktivieren können. Wenn Sie vermuten, dass ein bestimmter Prozess für die Latenz verantwortlich ist, ist es jetzt einfach und weniger zeitaufwändig, Debugging-Protokolle nur für diesen bestimmten Prozess zu erstellen:

SET DATABASE PARAMETER (Current process debug log recording;2+4+8)

Ein Projekt erstellen

Der Debug-Protokollanalysator verwaltet Projekte, die eine Reihe von Debug-Protokolldateien und eine Debug-Protokollsitzung darstellen.

Wenn Sie eine Datenbank öffnen, wird eine Liste der gespeicherten Projekte angezeigt. Über die Schaltfläche „Neu“ können Sie ein Projekt erstellen. Sie müssen den Ordner mit den Debug-Protokollen oder die Dateien, die Sie analysieren möchten, auswählen und Ihrem Projekt einen Namen geben.

Beachten Sie, dass der Analyseprozess, auch wenn er präventiv abläuft, je nach Anzahl der zu scannenden Dateien und der Prozessoren auf Ihrem Rechner einige Zeit in Anspruch nehmen kann.

Analysieren des Projekts

Wenn Sie das Projekt aus der Liste auswählen, zeigt eine Zusammenfassung grundlegende Informationen wie den Bereich der Debug-Protokolle und die analysierten Zeilen an. Sie können die Aufrufketten, Statistiken und Projektdetails des Projekts anzeigen, indem Sie auf die entsprechenden Schaltflächen klicken.

AUFRUFKETTEN

Der Aufrufketten-Bildschirm zeigt die Liste der Prozesse mit der Gesamtausführungszeit an. Die Liste ist so geordnet, dass die zeitaufwändigsten Prozesse oben auf dem Bildschirm angezeigt werden.

Sie können die Prozessaufrufkette erweitern und den zeitaufwändigsten Vorgang auf jeder Ebene sehen. Wenn Sie mit der ALT-Taste auf einen Prozess klicken, wird automatisch die aufwändigste Aufrufkette erweitert, und wenn Sie auf einen Vorgang doppelklicken, wird er in den Kettenexplorer verschoben. Sie können dann eine Ebene aus der Liste auswählen, um die hierarchische Listenansicht auf der entsprechenden Ebene zu aktualisieren. Für jeden ausgewählten Befehl werden die Gesamtzahl der Aufrufe, die Gesamtdauer und die durchschnittliche Dauer angezeigt.

Beispiel

Im folgenden Beispiel haben wir nach den Prozessen und Befehlen gesucht, die am meisten Energie verbrauchen. Wir sehen, dass die Ausführung des Befehls RELATE MANY SELECTION über eine Minute dauern kann. Schauen wir uns also den Abschnitt mit den Detailinformationen an und sehen wir, wo der Befehl aufgerufen wurde.

blank

DETAILLIERTE INFORMATIONEN

Auswählen des Zeitbereichs

Der detaillierte Bildschirm zeigt eine Zeitleiste der Aktivität, die Minute für Minute angezeigt wird. Sie können die Ansicht vergrößern oder verkleinern, um mehr oder weniger Details zu sehen. Auf diese Weise können Sie einen bestimmten Zeitbereich für die Analyse auswählen. Sie können nur eine oder mehrere Minuten auswählen, indem Sie die Grenzen verschieben.

Wenn Sie einen neuen Bereich auswählen, wird eine Analyse durchgeführt und die Ergebnisse werden unten auf dem Bildschirm angezeigt. Indem Sie auf Zeiträume mit hoher Aktivität hinweisen, haben Sie eine weitere Möglichkeit, langsame Prozesse zu ermitteln.

Registerkarte ZUSAMMENFASSUNG

Die Registerkarte Zusammenfassung zeigt die allgemeine Statistik der Prozessausführungszeit für das ausgewählte Zeitintervall an. Sie können die Statistik ausblenden, indem Sie einen Prozess aus der Liste auswählen.

blank

Registerkarte Top

Auf der Registerkarte „Top“ werden alle protokollierten Vorgänge mit der Anzahl der Aufrufe und der Gesamtlaufzeit für die ausgewählten Prozesse und den gewählten Zeitbereich angezeigt. Die Liste kann mit Hilfe eines Filters für Befehle, Methoden oder Mitgliedsmethoden reduziert werden. Dies ist eine weitere gute Möglichkeit, die am meisten verbrauchenden Befehle, Methoden usw. zu ermitteln.

In unserem Beispiel haben wir einen Zeitbereich ausgewählt und nach Befehlen gefiltert. Es erscheint eine Bestätigung: der Befehl RELATE MANY SELECTION wurde einige Male verwendet und benötigte viel Zeit. Gehen wir zum nächsten Schritt, um weitere Details zu erfahren.

blank

Vorgänge

Auf der Registerkarte Vorgänge werden alle detaillierten Vorgänge für eine einzelne, isolierte Minute für die ausgewählten Prozesse angezeigt. Sie können die Liste verkleinern oder einfach hervorheben, indem Sie nach einem Vorgang suchen. Diese Statistik ist aus Leistungsgründen auf eine Minute begrenzt. Vergessen Sie also nicht, die Minute auszuwählen, in der Sie die eingeleiteten Vorgänge sehen möchten!

Diese Liste kann sehr nützlich sein, da sie alle ausgeführten Codezeilen anzeigt. Sie können die Liste auch nach der Spalte sortieren.

Um unser Beispiel abzuschließen, haben wir nach dem Befehl RELATE MANY SELECTION gesucht, die Liste gefiltert und nach der Spalte Dauer sortiert (um die längsten Aufrufe an den Anfang der Liste zu stellen). Es scheint, dass die beiden zeitaufwändigsten Aufrufe mit demselben Feld gemacht werden. Ein kurzer Blick auf die Struktur unserer Datenbank und wir haben den Übeltäter gefunden: Das Feld muss indiziert werden.

blank

Zum Schluss

Dieses Tool soll Ihnen helfen, Konflikte in Ihrem Code zu finden und die Leistung Ihrer Datenbank zu verbessern. Machen Sie sich die Hände schmutzig und haben Sie Spaß beim Untersuchen, indem Sie das obige HDI herunterladen!

Avatar
- Product Owner - Damien Fuzeau ist seit Februar 2019 Mitglied des 4D Produktteams. Als Product Owner ist er für das Schreiben von User Stories zuständig, die er dann in funktionale Spezifikationen umsetzt. Zu seinen Aufgaben gehört es auch, dafür zu sorgen, dass die gelieferten Funktionsimplementierungen den Anforderungen der Kunden entsprechen. Damien hat an der Universität von Nantes einen Abschluss in Softwaretechnik gemacht. Er verbrachte mehr als 23 Jahre in seinem früheren Unternehmen, zunächst als Entwickler (er entdeckte 4D im Jahr 1997) und später als technischer Leiter und Softwarearchitekt. Dieses Unternehmen ist ein 4D OEM Partner und hat 4D basierte Geschäftssoftware für Tausende von Usern auf Hunderten von Servern eingesetzt. Damien ist also mit der Entwicklung und dem Einsatz von 4D in einem mehrsprachigen Kontext vertraut.