PHP skripto vykdymo laikas ir dar viena gudrybė

Kartais tikrai naudinga matyti per kiek laiko PHP sugeneruoja puslapį ar tam tikras jo dalis. Internete rasite tikrai nemažai pavyzdžių kaip tai atlikti, kad ir šiandieninis SkaitykIT.lt įrašas “Kaip su PHP greitai pamatuoti skripto vykdymo laiką“, išties detalus straipsniukas, dėja pasigedau komentavimo tame straipsnyje, nes norėjau pasidalinti dar viena gudrybe, kurią atradau visai neseniai ir manau pravers daugeliui.

Per kiek laiko sugeneruojamas puslapis, ar jo tam tikra dalis apskaičiuoti tikrai nėra sunku ir atspausdinti galima, bet kurioje puslapio vietoje ir tai nesukelia jokių nesklanudmų. Tačiau atsiranda nesklandumų tada, kai norime pamatuoti tarkim AJAX užklausos generavimo laiką. AJAX užklausos dažnai gražina suformatuotą JSON masyvą, kur įterptas standartinis skripto vykdymo laikas jį padarys nesuprantamu JavaScript funkcijai, kuri apdoroja rezultatą. Norint pamatuot tų užklausų generavimo laiką, reikia pateikti užklausą tiesiogiai naršykliai arba pasinaudoti viena gudrybe, kuriai jums prireiks Firebug įskiepio Firefox naršyklėje, arba atitinkamo įskiepio jūsų naudojamoje naršyklėje kur būtų galima matyti užklausas ir jų “Response Headers”. Taip tikriausiai supratote teisingai, skripto generavimo laiką patalpinti galima į puslapio “Response Headers” ir tai tikrai patogus ir paprastas būdas sekti per kiek laiko sugeneruojamas puslapis ir dar vienas pliusas, jog tai taip paprastai nesimatys vartotojams. Žemiau pateikiu kodo pavyzdį, kaip įterpti skripto vykdymo laiką į “Response Headers”.

<?php header('ETime: '.$totaltime); ?>

Tiesa šis kodas turi būti patalpintas, prieš bent kokį informacijos išvedimą.

Ir taip atrodys rezultatas:

Leave a comment ?

5 Comments.

  1. irmantasplius

    Ką tiksliau turėjai omenyje? BlackBox? Tai yra WordPress įskiepis, tikriausiai labai naudingas, WP programuotojams ir dizainiariams, deja nepastebėjau AJAX debuginimo galimybių, taip pat sunkiai bus panaudojama su kitomis platformomis, nei WordPress.

    • Turėjau omeny pirmas dvi dalis pirmos dalies :) Kad klaidos turi būti nerodomos outpute (t.y. kas siunčiama į naršyklę), bet viskas turi būti rašoma į logą, kurį gali visada atsidaręs turėti ir realiu laiku stebėti kas ten vyksta. Tada AJAX nelūžta ir viskas būna gražiai išvedama. Ypač gera ta klaidų loginimo funkcija, kai nereikia galvoti ar ten rašyti print_r ar užtenka echo, visada varai tą pačią ir viską išveda ką reikia :)

    • irmantasplius

      Na kalba buvo apie skripto vykdymo laiką, o ne klaidų loginimą, manau tai visai atskita tema :)

  2. Dėkui, vis kažką naujo sužinojau.
    ETime, kaip supratau, tai išreiškiamas sekundėmis? :)

    • irmantasplius

      Taip, pateiktame pavyzdyje, skripto laikas yra ~0,09 sekundės.

Leave a Comment


NOTE - You can use these HTML tags and attributes:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>