avancerede codeigniter profilering med xhprof

, avancerede codeigniter profilering med xhprof,,,,, 1,,,,,,,,, 33,,,,,,, det cyber - mandag envato tuts + kurser vil blive reduceret til $3.- og' t miss.,, der er en række måder at profil og overvåge gennemførelsen af folkesundhedsprogrammet kode i en udvikling, miljø, men når den er løs på en produktion server sin yderst vanskeligt at vide, hvad der sker, når din app får adgang til deres brugere.,, i marts 2009, facebook løsladt xhprof, en funktionsniveau profiler, der giver dig mulighed for at identificere flaskehalse i din ansøgning.og den kører på en produktion server med lille ovenover.,,,, xhprof vil give dig en hierarkisk profil af de funktioner, deres forslag, som gør det muligt at følge den kæde af begivenheder, der fører op til ressourcekrævende kode.du vil være i stand til at se, hvor meget væg gang (den faktiske tid) cpu og minde deres ansøgning anvendelser.,, denne forelæsning vil hjælpe dig, med at få xhprof monteret på deres server og integreret med din codeigniter anvendelse via kroge, så kan du starte profilering af din ansøgning, i en produktion, miljø, med det samme.alt, hvad du ser her var skrevet til ubuntu 10.04 - den seneste dens frigivelse i skrivende stund.,,, installation, montering af xhprof kan ske via pecl - det sagde, jeg aldrig har været i stand til at få pecl version monteret på ubuntu nemt, så det lettere at installere fra kilden.starte med at downloade den seneste revision af xhprof github konto.,, wget https://github.com/facebook/xhprof/tarball/master - o xhprof.tar.gz, ud tarball og skifte til den udtrukne mappe - dette vil ændre alt efter den seneste revision tilgængelige fra github.,, tjære - xvf xhprof.tar.gz cd facebook-xhprof-bc8ef04 /udvidelse, og installere som normale.,, phpize. /konfigurere gøre sudo at installere, endelig er vi nødt til at se på at lade udvidelsen.skabe et dossier for det ud - jeg gør det for renlighed, men du kan altid taber det i slutningen af deres vigtigste, folkesundhedsprogrammet. ini,.,, sudo nano - /etc /php5 /conf.d/xhprof.ini, og pasta i følgende:,, udvidelse = xhprof.so xhprof. output_dir = "/var /tmp /xhprof", det fortæller xhprof at anvende registret til, var /tmp /xhprof, for at redde sin løb data.,, du kan kontrollere, om xhprof er installeret korrekt ved at indlæse, php - m på kommando linjen og kontrollere, at det modul, der er til rådighed.husk at genstarte apache, således at det bliver hentet i folkesundhedsprogrammet web ansøgninger samt.,, hvis du ønsker at gøre callgraph billeder, du har også brug for den graphviz pakke.dette kan opnås ved lejlighed, sudo passende få installere graphviz, integration med codeigniter,, xhprof kan anvendes på ad hoc - grundlag for at vurdere små stykker af koden, men det er den mest nyttige, når du lader den profil, den fulde side.for det første, du bliver nødt til at flytte xhprof kode ind i dit spind ansøgninger rod, så det har adgang til de relevante klasser.,, sudo mv - /facebook-xhprof-bc8ef04 /var /www /xhprof,, codeigniter har en fremragende mekanisme til injektion af toldkodeksen i gennemførelsen af en side kaldes "kroge.det er, hvad vi skal bruge til at integrere xhprof med deres ansøgning.så kroge i din ansøgning /ud /config.php, fil. $ud ['enable_hooks'] = sandt;,, så angiv din kroge, anvendelse /ud /kroge. folkesundhedsprogrammet, $klo ['pre_controller '] = system (klasse "= >" xhprof "," funktion » = > xhprof_start "," filnavn = > xhprof. folkesundhedsprogrammet, filepath = > kroge, params = > array()); $klo ['post_controller'] = system ('class = > xhprof,'function "= >" xhprof_end,'filename = > xhprof. folkesundhedsprogrammet,'filepath = > kroge,'params = > array()), og skabe den krog, der vil belastning xhprof i din ansøgning, anvendelse /kroge /xhprof. folkesundhedsprogrammet.denne klasse vil give det nødvendige minimum for at få xhprof indsamling af data fra din ansøgning.,, klasse xhprof (private $xhprofpath = xhprof /; private $applicationname = my_application; private $samplesize = 1, menig static $for = falske offentlig funktion xhprof_start() (hvis (mt_rand (1 $- > samplesize) = = 1) (include_once $- > xhprofpath. "xhprof_lib /utils /xhprof_lib. php; include_once $- > xhprofpath. "xhprof_lib /utils /xhprof_runs. php; xhprof_enable (xhprof_flags_no_builtins); selv: $for = sandt.}} offentlig funktion xhprof_end() (hvis (self -:: $aktiveret) ($xhprofdata = xhprof_disable(). $xhprofruns = nye xhprofruns_default(). $xhprofruns - > save_run ($xhprofdata $- > applicationname)}}}, er der et par ting at påpege i denne kode prøve.,,,, $xhprofpath, variable bør registret du installeret xhprof.i vores eksempel, vi putter det i roden af webapplikationen, men du kan opbevare den et eller andet sted i central - og symlinking til flere ansøgninger.,,, $applicationname, variabel kan man angive navnet på anvendelsen af xhprof.dette kan være særlig vigtigt i en situation, hvor du løber flere ansøgninger for den samme server.,,, $samplesize, variable kan man fastsætte en faktor for, hvor ofte xhprof profiler og løbe.i en produktion, miljø, hvor du modtager tusindvis af rammer, er det sikkert ikke værd at opbevare alle løb.du kan øge denne variabel til at få en stikprøve af løber.ændrer det til 10, for eksempel, vil give dem en rapport fra en ud af hver 10 besøg i din ansøgning.,,,, xhprof_enable(), funktion kan acceptere enhver kombination af 3 konstanter.,,, xhprof_flags_no_builtins, - - alle interne php funktioner.dette betyder, at man kun ser den tid, der bruges på de funktioner, som de har skrevet (eller er en del af codeigniter), xhprof_flags_cpu - tilføje yderligere cpu profilering oplysninger, xhprof_flags_memory - tilføje yderligere minde profilering oplysninger, kombinere dem med, +.f.eks. xhprof_enable (xhprof_flags_no_builtins + xhprof_flags_memory);,,, efter at deres ansøgning et par gange, din browser på xhprof anvendelse fortegnelsehttp: /////////////////////////////localhost xhprof xhprof_html index.php - justering for adressen på deres udvikling, - - og du vil se en liste over din sidste anvendelse er med de nyeste øverst.vælg en af de løber for at se det er profilanalyser oplysninger.,,, en evaluering af resultaterne, og lagring af alle denne profilering oplysninger er fint og godt, men at vide, hvordan man skal vurdere det er nøglen til at optimere deres ansøgning.,, "samlet oversigt er et godt sted at begynde - det vil vise dig:,,, i alt inklusiv væg gang - hvor lang tid (i ms) tog det til side, der frembringes, samlet hukommelse brug - det samlede hukommelse, der anvendes ved det løb af din ansøgning, samlede maksimale hukommelse anvendelse - af den maksimale størrelse af minde, som blev anvendt af din ansøgning, antal funktion kræver, - antal funktioner, der blev ringet op af din ansøgning,,,, der skal give et samlet retsgrundlag for at starte fra og give overordnede numstemmer imod, når du begynder at sammenligne optimering.,, under resumé er den detaljerede løb betænkning flaskehalsene i din ansøgning, bør være klart - det er funktion kræver, på toppen af betænkningen.,,, det mest ressourcekrævende ting, du kan komme over, vil være dem, der ringer til eksterne ydelser eller jeres database.ved misligholdelse, og resultaterne er sorteret efter "inklusiv mur".det viser de funktioner, som tog den længste løbe af det samlede beløb af dem og de funktioner, de ringer.bestilling af eksklusive mur tid, kan du se den specifikke funktioner, der anvender den mest ressourcemængden.,, at klikke funktion giver dig mulighed for at gå mere i detaljer med denne funktion og de funktioner, der ringede.derfra, vil det være lettere at se præcis, hvad din gamle funktion og spotte spørgsmål.,, når debugging - din codeigniter anvendelse, en af de bedste steder at begynde den registeransvarlige, der ringede til din side - velkommen: indeks, for eksempel.der kan du se, hvor let den opdeling af den registeransvarlige, tilbragte det meste af det er tid.,,, callgraph,, xhprof kan generere et ringe figur opfattelse, der giver et visuelt spor til den vigtigste vej i deres ansøgning.de vigtigste flaskehalse er markeret med rødt at vise, hvor meget deres ressourcer bliver brugt.,,, at sammenligne løber, xhprof tilvejebringer en mekanisme til at sammenligne flere ture - - dette vil give dem mulighed for at fremsætte en række kompilatoroptimeringer, og så se, hvordan det har påvirket din ansøgning.,,http: //////////////////////localhost xhprof xhprof_html /index.php?run1 = run_id_1 > & run2 = run_id_2 & kilde: applicationname, note:, run_id_1, og run_id_2, bør være id fra nogle af dine tidligere løber, og applicationname, bør være dit navn, der er specificeret i forbindelse med etableringen af det tidligere, vil dette give samme du ser på en regelmæssig rapport, men give procentdel statistikker om eventuelle ændringer siden den første tur, så de let kan se, om din kompilatoroptimeringer flytter din optræden i den rigtige retning.,, at aggregere løber, og en enkelt løb kan ikke være nok til at vurdere, hvad der foregår.sider mit arbejde lidt forskelligt, afhængigt af forespørgslen snor eller brugerinput, eller der kan være forskelle i caching mekanismer.,, at samle en række har du mulighed for at kombinere en række løber og modtage et gennemsnit af de forbrugte ressourcer.,,http: /////////////////////////////localhost xhprof xhprof_html index.php?løb = run_id, run_id, run_id & kilde: applicationname, note:, run_id, bør være id fra nogle af dine tidligere løber, og applicationname, bør være dit navn, der er specificeret i forbindelse med etableringen af det tidligere.,,,,,,,, du vil have xhprof oppe og køre i din codeigniter anvendelse og være i stand til at se præcis, hvor din kode er det meste af det er tid.optimering kan være en vanskelig opgave.det er ikke så enkelt, som reimplementing funktion, eller at tilføje et lag af kravene.tænkt over, hvorfor man gør noget, og hvad den nøjagtige virkning, det har på din ansøgning, er lige så vigtigt,.,, så lad mig vide, hvis du har spørgsmål i bemærkningerne nedenfor.mange tak for det!,

Run summary
Wall report
Controller summary
Callgraph



Previous:
Next Page: