Profiling



  • Hallo!

    Ich verwende unter Linux gcc. Fürs Profilen kommt die Option -pg und das GUI
    kprof zum Einsatz. Nun habe ich bei einer Funktion triangulate() eine Laufzeit,
    die (mittels clock() gemessen) 26 Sekunden braucht. Im kprof wird für
    triangulate() aber eine Total-Time von nur 13.5 Sekunden angezeigt, was ganz
    korrekt den Total-Times der von triangulate() aufgerufenen Funktionen entspricht.

    Wo gehen also 50 Prozent der Zeit verloren? Bei den Millionen Funktionsaufrufen,
    die von triangulate() aus passieren. Okay. Also inline ich die am häufigsten
    aufgerufenen, die auch recht kurz sind. Dann sollte IMHO die von clock()
    gemessene Zeit ähnlich der Total-Time von triangulate() sein. Ist aber nicht
    der Fall. Welche Zeit wird denn beim Profiling nicht mitgezählt? Die Funktions-
    aufrufe sind scheinbar nicht als einzige schuld.

    Danke, lg


Anmelden zum Antworten