Ako funguje Debugger::timer(‚parameter‘)
- Čamo
- Člen | 798
Vitajte a čítajte:
Potreboval by som dnes použiť pri svojich experimentoch s Nette
Debugger::timer(‚x‘). V dokumentácii to vyzerá úplne primitívne, ale
tie výpisy mi nedávajú logiku. Mám kód:
Debugger::timer('task1');
sleep(2);
Debugger::timer('task2');
sleep(1);
$task1 = Debugger::timer('task1');
$task2 = Debugger::timer('task2');
$this->template->task1 = $task1;
$this->template->task2 = $task2;
No a vypíše mi to cca čísla task1=3 a task2=1
Task2 odmeria správne, ale task1 má vždy
hodnotu taks1 + task2.
Takto to má fungovať? Lebo ja som čakal, že dostanem hodnoty jednotlivých
úloh a nie ich súčet.
ďakujem za vysvetlenie.
Editoval Čamo (13. 5. 2014 13:32)
- Michal Vyšinský
- Člen | 608
Tak je to správně.
Čas task1 se měří od prvního do sedméno řádku. Čas task2 se měří od 4. do 8. řádku. To pojmenování timerů je jen pro potřebu měřit více věcí zároveň (tak jak to máš ty). Ale skript jede řádek po řádku.
Resp. máš dvoje stopky:
- zapneš stopky 1
- čekáš 2 vteřiny
- zapneš stopky 2
- čekáš 1 vteřinu
- stopneš stopky 1 i stopky 2
- jaký bude čas na stopkách 1 a jaký na stopkách 2?
Editoval Michal Vyšinský (13. 5. 2014 13:43)
- Čamo
- Člen | 798
Ten kód z dokumentácie je trochu zavádzajúci. Malo by to byť:
Debugger::timer('task1');
sleep(2);
$task1 = Debugger::timer('task1');
Debugger::timer('task2');
sleep(1);
$task2 = Debugger::timer('task2');
$this->template->task1 = $task1;
$this->template->task2 = $task2;
Editoval Čamo (13. 5. 2014 13:58)
- Michal Vyšinský
- Člen | 608
Proč? Je tam napsané, že to jsou stopky. Ale klidně můžeš poslat pull request: https://github.com/nette/docs