Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Debugger - Wąskie gardło
cojack
post
Post #1





Grupa: Zarejestrowani
Postów: 898
Pomógł: 80
Dołączył: 31.05.2008

Ostrzeżenie: (20%)
X----


Chciałbym się zapytać Was jaki macie sposób na rozwiązanie tego problemu z wąskim gardłem w debuggerze. Otóż jeżeli chcemy posiadać informację o czasie wykonania się poszczególnych metod w naszej aplikacji, to piszemy sobie np dwie funkcje w debuggerze start() i stop() które mierzą czas wykonania się metody. Teraz w takiej metodzie te dwie funkcje trzeba odpalić, także przykład:

  1.  
  2. public function waskieGardlo() {
  3. debugger::start( __CLASS__, __FUNCTION__ );
  4. // coś se tu robimy coś tam coś
  5. debugger::stop();
  6. }


no i teraz mamy wywołaną dwie metody nie potrzebnie gdy np nie mamy włączonego debuggera, także zróbmy to inaczej:

  1. public function waskieGardlo() {
  2. if( debugger::$enable ) {
  3. debugger::start( __CLASS__, __FUNCTION__ );
  4. // coś se tu robimy coś tam coś
  5. }
  6. if(debugger::$enable)
  7. debugger::stop();
  8. }


Teraz dwa razy sprawdzamy czy debbuger jest włączony, co mi też się zbytnio nie podoba, to może inaczej:

  1. public function waskieGardlo() {
  2. if( debugger::$enable ) {
  3. debugger::start( __CLASS__, __FUNCTION__ );
  4. // coś se tu robimy coś tam
  5. debugger::stop();
  6. } else
  7. // coś se tu robimy coś tam
  8. }


Teraz podwójnie piszemy kod którą jest już napisany + np wyłapywanie błędów itp... Jest też i czwarta metoda:

  1. public static function start( $class, $method ) {
  2. if( self::$enable ) {
  3. // sprawdzamy sobie czas
  4. }
  5. }
  6.  
  7. public static function stop() {
  8. if( self::$enable ) {
  9. // zliczamy sobie czas
  10. }
  11. }


I taka opcja w połączeniu z pierwszą opcją wydaje się być najbardziej optymalną, ale, aczkolwiek nie wydaje mi się być najlepszą. Macie na to jakieś rozwiązanie? Pusta klasa debuggera w ogóle mnie nie interesuje, czy tam puste metody, to odpada.


--------------------
cojack blog - mój blog (na jakiś czas off).
"jak czegoś nie wiem, to nie myślę że wiem" - moja domena
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 6)
nospor
post
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




a nie mozesz po prostu włączyc profilera, odpalic skrypt a nastepnie logi z profilera przejrzec w specjalnym programie? Tam ładnie widać co jest wąskim gardłem.


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
cojack
post
Post #3





Grupa: Zarejestrowani
Postów: 898
Pomógł: 80
Dołączył: 31.05.2008

Ostrzeżenie: (20%)
X----


Cytat
a nie mozesz po prostu włączyc profilera,


yyy czego?


--------------------
cojack blog - mój blog (na jakiś czas off).
"jak czegoś nie wiem, to nie myślę że wiem" - moja domena
Go to the top of the page
+Quote Post
nospor
post
Post #4





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




myslalem ze uzywasz XDEBUG
Jesli wiec nie uzywasz to się nim zainteresuj. Bardzo ułatwi ci życie w tych sprawach winksmiley.jpg


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
cojack
post
Post #5





Grupa: Zarejestrowani
Postów: 898
Pomógł: 80
Dołączył: 31.05.2008

Ostrzeżenie: (20%)
X----


Masz może jakiś dobry artykuł jak to z eclipse (pdt) połączyć w kupę i jak to używać?


--------------------
cojack blog - mój blog (na jakiś czas off).
"jak czegoś nie wiem, to nie myślę że wiem" - moja domena
Go to the top of the page
+Quote Post
nospor
post
Post #6





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




ale ty miales profilowac a nie debugowa. do profilowania eclipse nie jest potrzebny smile.gif
Ustawiasz w php.ini wpisz ze chcesz profilowac i odpalasz skrypt. Nastepnie wszystko co sie dzieje, wlacznie z czasem i pamiecia jest logowane. Nastepnie przy pomocy np. kCacheGrind mozesz przeanalizowac te logi, znaleźć wąskie gardło, wizuwalnie przejrzec rezultaty

A jesli chcesz debugowac w eclipse to ja korzystalem z samego opisu co w necie znalazlem przy okazji xdebug i eclipse


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
zzeus
post
Post #7





Grupa: Zarejestrowani
Postów: 441
Pomógł: 71
Dołączył: 3.09.2007
Skąd: wrocław

Ostrzeżenie: (0%)
-----


http://devzone.zend.com/article/2803-Introducing-xdebug - tutaj masz bardzo fajnie opisane to co będzie Ci potrzebne

Ten post edytował zzeus 15.04.2010, 09:14:19


--------------------
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 20.08.2025 - 13:22