Thread Suche Hilfe für Projektarbeit (32 answers)
Opened by Gustl at 2011-03-17 20:21

clms
 2011-03-18 15:50
#146618 #146618
User since
2010-08-29
373 articles
BenutzerIn
[default_avatar]
2011-03-18T11:08:01 Linuxer
du könntest Dich mal daran versuchen, Deinen Code einem Profiling zu unterziehen.

Nach meinen Erfahrungen aus anderen Projekten würde ich Profiling erst als dritten Schritt einsetzen - einfach vom Aufwand/Nutzen-Verhältnis her.

Es muss hier ja nicht die letzte Millisekunde herausgeholt werden. Wenn ich Gustl richtig verstanden habe, genügt es, wenn das Ganze halbwegs flüssig abläuft. Ich tippe, das es 1-3 Stellen gibt, die > 90% der Zeit verbraten. Es genügt dann, diese zu beschleunigen.


Als ersten Schritt würde deshalb auch ich - wie von Bianca vorgechlagen - über den Programmverlauf die verbrauchte Zeit ausgeben. Das ist einfacher als richtiges Profiling, aber man sieht meist, in welcher Programmphase die viele Zeit verbraten wird und kann die kritische(n) Stelle(n) dann weiter eingrenzen.


Wenn bei den kritischen Stellen auch Datenbankzugriffe dabei sind, würde ich mir als Schritt zwei die verwendeten SQL-Statements anschauen und sie interaktiv in der MySQL-Shell ausprobieren. Da bekommt man automatisch angezeigt, wie lange das einzelne Statement gedauert hat.

Da habe ich schon manche Überraschung erlebt.
Vielleicht geht es nur mir so, weil ich mit SQL deutlich weniger Erfahrung habe und mir daher - anders als bei normaler Programmerung - das Gefühl für aufwendige Operationen fehlt, vielleicht geht es Gustl genauso.

Einigen Projekten konnte ich bestimmte Queries um 1-3 Größenordnungen beschleunigen, indem ich sie etwas umstrukturierte (odereines passenden Index hinzufügte).


Profiling würde ich erst einsetzen, wenn Schritte 1 & 2 keine zufriedenstellenden Ergebnisse liefern.

View full thread Suche Hilfe für Projektarbeit