Call count statistics can be used to identify bugs in code (surprising counts), and to identify possible inline-expansion points (high call counts). Internal time statistics can be used to identify “hot loops” that should be carefully optimized. Cumulative time statistics should be used to identify high level errors in the selection of algorithms.
![]()
Feld mit DF-Verhalten i
Button Funktion Sofortanalyse Das Ergebnis direkt in einer MessageBox anzeigen Datei generieren Das Ergebnis als Datei abspeichern Abbrechen Das Ergebnis verwerfen
Details
Modus Begrenzung Normal 25 Zeilen Callers 15 Zeilen Callees 15 Zeilen
Nummer Erklärung 1 Zeit der Analyse und Pfad, an dem die Profile-Datei liegt. Bei der Sofortanalyse befindet sich die Datei immer in einem temporären Ordner 2 Die Anzahl der Funktionsaufrufe mit Rekursion, ohne und die gesamte Dauer 3 Nach was wird sortiert und wieviel wird angezeigt 4 Die Profile-Tabelle 5, 6, 7, 8 Nach der entsprechenden Spalte sortieren 9 Zwischen den Ansichten Normal, Callers und Callees umschalten 10 Anzeige abbrechen und MessageBox schließen
Spalte Erklärung ncalls Die Anzahl der Aufrufe und Anzahl ohne rekursive Aufrufe durch einen Slash getrennt tottime Gesamte Zeit, die in dieser Funktion verbrachte wurde, ohne Aufrufe der Unterfunktionen percall tottime/ncalls cumtime Zeit, die innerhalb der Funktion von Aufruf bis Abschluss verbracht wurde, einschließlich aller Unterfunktionen percall cumtime/ncalls filename:lineno(function) Name der Datei: Zeilennummer (Funktionsname)
Ansicht Bedeutung ![]()
Callers Zeigt an, von was eine Funktion aufgerufen wurde sowie die ncalls, tottime und cumtime Callees Zeigt an, welche Unterfunktionen von einer Funktion aufgerufen wurden sowie die gleichen Spalten wie die Ansicht Callers Normal Zeigt Funktionsaufrufe mit Werten für die oben genannten Spalten
from ppms import ppms projects = [item for sublist in ppms.db_select("SELECT DI001001 FROM DT461") for item in sublist] for project in projects: project_rec = ppms.search_record(461, [project], [1001], True)
ncalls tottime percall cumtime percall 209 0.573 0.003 0.573 0.003 {built-in method search_record} 11 0.000 0.000 0.000 0.000 ppms_. 2 0.007 0.004 0.007 0.004 {built-in method db_select}
Details
search_record
209 aufgerufen wurde und damit 0.573 Sekunden verbraucht wurden.
db_select
wurde zweimal aufgerufen, was hier seltsam erscheint, denn das Makro ruft db_select
nur einmal auf.
Function was called by... ncalls tottime cumtime {built-in method search_record} <- 4 0.003 0.003 MACRO_MOD_009ATM.py:1(<module>) 204 0.569 0.569 MACRO_MOD_009BQX.py:1(<module>) 1 0.000 0.000 ppms_cu. {built-in method db_select} <- 1 0.006 0.006 MACRO_MOD_009BQX.py:1(<module>) 1 0.001 0.001 ppms_cu. ppms_cu. <- 1 0.000 0.016 MACRO_MOD_009ATM.py:1(<module>)
Hinweise
Details
db_select
wirklich nur einmal von dem Modul aufgerufen wurde. get_global_setting
aus ppms_cu
verwendet.
I | Attachment | History | Size | Date | Comment |
---|---|---|---|---|---|
![]() |
ProfileDefaultMsg.png | r1 | 40.9 K | 2012-07-17 - 10:00 | |
![]() |
ProfilerProfileField.PNG | r1 | 7.5 K | 2012-07-17 - 10:00 |