Welcome Guest, Not a member yet? Register   Sign In
Issues with benchmark class
#6

[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 {

    function _display($output = '')
    {    
        // Note:  We use globals because we can't use $CI =& get_instance()
        // since this function is sometimes called by the caching mechanism,
        // which happens before the CI super object is available.
        global $BM, $CFG;
        
        // --------------------------------------------------------------------
        
        // Set the output data
        if ($output == '')
        {
            $output =& $this->final_output;
        }
        
        // --------------------------------------------------------------------
        
        // Do we need to write a cache file?
        if ($this->cache_expiration > 0)
        {
            $this->_write_cache($output);
        }
        
        // --------------------------------------------------------------------

        // Parse out the elapsed time and memory usage,
        // then swap the pseudo-variables with the data

        $elapsed = $BM->elapsed_time('total_execution_time_start', 'total_execution_time_end');

# START EDIT

        if (isset($this->show_ms))
        {
            $elapsed = $elapsed * 100;
        }    
    
# END EDIT

        $output = str_replace('{elapsed_time}', $elapsed, $output);
        
        $memory     = ( ! function_exists('memory_get_usage')) ? '0' : round(memory_get_usage()/1024/1024, 2).'MB';
        $output = str_replace('{memory_usage}', $memory, $output);        

        // --------------------------------------------------------------------
        
        // Is compression requested?
        if ($CFG->item('compress_output') === TRUE)
        {
            if (extension_loaded('zlib'))
            {
                if (isset($_SERVER['HTTP_ACCEPT_ENCODING']) AND strpos($_SERVER['HTTP_ACCEPT_ENCODING'], 'gzip') !== FALSE)
                {
                    ob_start('ob_gzhandler');
                }
            }
        }

        // --------------------------------------------------------------------
        
        // Are there any server headers to send?
        if (count($this->headers) > 0)
        {
            foreach ($this->headers as $header)
            {
                @header($header[0], $header[1]);
            }
        }        

        // --------------------------------------------------------------------
        
        // Does the get_instance() function exist?
        // If not we know we are dealing with a cache file so we'll
        // simply echo out the data and exit.
        if ( ! function_exists('get_instance'))
        {
            echo $output;
            log_message('debug', "Final output sent to browser");
            log_message('debug', "Total execution time: ".$elapsed);
            return TRUE;
        }
    
        // --------------------------------------------------------------------

        // Grab the super object.  We'll need it in a moment...
        $CI =& get_instance();
        
        // Do we need to generate profile data?
        // If so, load the Profile class and run it.
        if ($this->enable_profiler == TRUE)
        {
            $CI->load->library('profiler');                
                                        
            // If the output data contains closing </body> and </html> tags
            // we will remove them and add them back after we insert the profile data
            if (preg_match("|</body>.*?</html>|is", $output))
            {
                $output  = preg_replace("|</body>.*?</html>|is", '', $output);
                $output .= $CI->profiler->run();
                $output .= '</body></html>';
            }
            else
            {
                $output .= $CI->profiler->run();
            }
        }
        
        // --------------------------------------------------------------------

        // Does the controller contain a function named _output()?
        // If so send the output there.  Otherwise, echo it.
        if (method_exists($CI, '_output'))
        {
            $CI->_output($output);
        }
        else
        {
            echo $output;  // Send it to the browser!
        }
        
        log_message('debug', "Final output sent to browser");
        log_message('debug', "Total execution time: ".$elapsed);        
    }
}

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.


Messages In This Thread
Issues with benchmark class - by El Forum - 03-23-2009, 07:58 PM
Issues with benchmark class - by El Forum - 03-23-2009, 08:27 PM
Issues with benchmark class - by El Forum - 03-23-2009, 09:18 PM
Issues with benchmark class - by El Forum - 03-23-2009, 09:30 PM
Issues with benchmark class - by El Forum - 03-23-2009, 09:32 PM
Issues with benchmark class - by El Forum - 03-24-2009, 03:49 AM
Issues with benchmark class - by El Forum - 03-24-2009, 05:47 AM
Issues with benchmark class - by El Forum - 03-24-2009, 08:13 AM
Issues with benchmark class - by El Forum - 03-24-2009, 04:35 PM



Theme © iAndrew 2016 - Forum software by © MyBB