2016-10-29 1 views
1

Ich versuche meine php App zu profilieren, kann aber Indikatoren in qcachegrind nicht verstehen. gefolgt Screenshot: enter image description hereWie verstehe ich qcachegrind Ergebnisse?

seine Funktionen ruft natürlich. aber was bedeutet Spalten inkl. und selbst? Wie sollte ich hier erkennen, dass eine Methode umgestaltet werden muss?

Antwort

4

"self" ist die Zeit der Ausführung der Funktion OHNE irgendwelche Includes (und andere Funktionsaufrufe) drin und "include" ist die ganze Zeit der Funktion auszuführen (mit einschließlich Dateien, Funktion usw.). Nehmen wir ein Beispiel:

function a() 
{ 
    b(); 
    c(); 
} 

function b() { // some code } 
function c() 
{ 
    d() 
} 
function d() { // some code } 

Funktion eine Selbst Zeit wird ungefähr Null, aber da es b und c nennt, seine umfassen Zeit höchste sein und enthält Zeit für a, b und c. In ähnlicher Weise wird die Zeit und die Zeit gleich sein, da sie keine Funktion aufruft. Während c self ungefähr 0 sein wird und die Zeit einschließen, die ungefähr gleich ist, d schließt Zeit mit ein.

Wenn Sie Ihren qcachegrind betrachten, verbringt Ihr Code viel Zeit in den PDO-Aufrufen. Etwas, das mit der SQL-Abfrage zusammenhängt. Sie möchten auch Ihre SQL-Abfragen erfassen und sie profilieren, um zu sehen, wie sie sich verhalten.

Auch in der Ausgabe ist interessant, wie oft eine Funktion aufgerufen wird. Eine Funktion kann in Bezug auf die Leistung effizient sein, aber wenn sie zu oft aufgerufen wird, addiert sie sich. Überprüfen Sie, ob der Code zu viele SQL-Abfragen enthält.

+0

Ok, so "self" ist die Zeit der Ausführung der Funktionen OHNE alle Includes drin und "include" ist die ganze Zeit der Funktion auszuführen (mit Include-Dateien, Funktion etc), oder? – webcitron

+0

ja. Ich habe die Antwort aktualisiert, um es nach Ihrem Vorschlag klarzustellen. –

Verwandte Themen