![]() |
Issues with benchmark class - Printable Version +- CodeIgniter Forums (https://forum.codeigniter.com) +-- Forum: Archived Discussions (https://forum.codeigniter.com/forumdisplay.php?fid=20) +--- Forum: Archived Development & Programming (https://forum.codeigniter.com/forumdisplay.php?fid=23) +--- Thread: Issues with benchmark class (/showthread.php?tid=17027) |
Issues with benchmark class - El Forum - 03-23-2009 [eluser]neen[/eluser] I want to shift the decimal on elapsed_time() two places to the right, so I can output in MS (ie: 0.065 s to 65 ms). I'm using the following code: Code: <? $this->benchmark->elapsed_time() * 100 ?> The problem is, it outputs (string) "{elapsed_time}" and then multiplies that by 100, which ends up equal to 0. Now, I can always do this: Code: <?= number_format($this->benchmark->elapsed_time('total_execution_time_start', 'total_execution_time_end') * 1000) ?> Now the issue when I do that is very minor, but for some strange reason, 'total_execution_time_end' ends up before the benchmark for the current controller with profiler enabled...any ideas why this happens? Just curious.. Issues with benchmark class - El Forum - 03-23-2009 [eluser]TheFuzzy0ne[/eluser] [quote author="neen" date="1237877939"]Now the issue when I do that is very minor, but for some strange reason, 'total_execution_time_end' ends up before the benchmark for the current controller with profiler enabled...any ideas why this happens? Just curious..[/quote] I don't understand what this means. Please could your elaborate? Issues with benchmark class - El Forum - 03-23-2009 [eluser]neen[/eluser] Yes, in the profiler, normally the Total Execution Time ends up last, but for some reason when I have the above code in my view, it ends up between "Loading Base Time Classes" and "Controller Time Execution"...very strange...like I said, it's a minor issue and I am just curious why this happens Issues with benchmark class - El Forum - 03-23-2009 [eluser]TheFuzzy0ne[/eluser] I think it's because you're effectively adding the end marker before it's meant to be added. The final end benchmark tag is automatically set just as the last bit of view data is being sent to the browser. If you call it at any point before that, you'll end up with a false reading. Hopefully this makes sense. Issues with benchmark class - El Forum - 03-23-2009 [eluser]neen[/eluser] Hmm, do you see any other way around my issue, short of writing a custom library? Issues with benchmark class - El Forum - 03-24-2009 [eluser]TheFuzzy0ne[/eluser] Sure. Try adding this to your code: Code: $elapsed_time = $this->benchmark->elapsed_time('total_execution_time_start'); Now this won't give you the exact same time that you'd get if you used {elapsed_time}, but if you use it within the last view, it should be pretty close. In fact it should give you the elapsed time (as expected). Another alternative might be to do this: ./system/application/libraries/MY_Benchmark.php Code: class MY_Benchmark extends CI_Benchmark { The above code is untested Simply do this at any point before {elapsed_time} is parsed: Code: $this->output->show_ms = TRUE; That should cause the output to be in milliseconds. Hope this helps. Issues with benchmark class - El Forum - 03-24-2009 [eluser]jedd[/eluser] I can bite my tongue no longer. Moving the decimal point two places will not convert seconds to milliseconds - it'll convert it to centiseconds. milli- refers to a thousandth, so you would need to move the decimal point three places. This means multiplying by a thousand, not a hundred. I blame the various cultural backgrounds - dealing with miles, gallons, feet, farthings, chains and furlongs can't have been easy. </rant> Issues with benchmark class - El Forum - 03-24-2009 [eluser]TheFuzzy0ne[/eluser] You're right. Thanks for pointing that out. That was be last thing at night (4AM), and first thing this morning after 5 hours sleep. It's a bit like the difference between a UK billion and a US billion. UK = 1,000,000,000,000 US = 1,000,000,000 Issues with benchmark class - El Forum - 03-24-2009 [eluser]neen[/eluser] Yeah, I meant 3 haha, in my actual code I had * 1000 ![]() |