CI架構源碼閱讀---------基準測試類別Benchmark.php_PHP教程

來源:互聯網
上載者:User
[php] marker[$name] = microtime(); } // -------------------------------------------------------------------- /** * Calculates the time difference between two marked points. * 計算出兩個時間點之間的時間。 * If the first parameter is empty this function instead returns the * {elapsed_time} pseudo-variable 虛假變數. This permits 許可 the full system * execution time to be shown in a template. The output class will * swap the real value for this variable. * * @access public * @param string a particular marked point * @param string a particular marked point * @param integer the number of decimal places * @return mixed */ function elapsed_time($point1 = '', $point2 = '', $decimals = 4) { /* * 如果沒有給出明確的時間點,那麼會計算出整個程式啟動並執行時間。 * 怎麼可以做到計算出整個程式的已耗用時間的呢?其實執行此計算的是Output組件。 * 而調用Benchmark::elapsed_time();(無參數)的時候,實質上先返回的並不是 * 整個程式啟動並執行時間,也不可能做到,實質返回的是一個{elapsed_time}標籤,然後 * Output在處理輸出的時候,再計算出整個程式已耗用時間,因為處理輸出階段程式可以視 * 為處於最後階段,於是可以近似計算出總時間,然後把輸出中的{elapsed_time}替換掉。 * 下面的memory_usage()原理相同。 */ if ($point1 == '') { return '{elapsed_time}'; } if ( ! isset($this->marker[$point1])) { return ''; } if ( ! isset($this->marker[$point2])) { $this->marker[$point2] = microtime(); } //這裡為什麼要用到list,是因為microtime();傳回值是“msec sec”的格式。 list($sm, $ss) = explode(' ', $this->marker[$point1]); list($em, $es) = explode(' ', $this->marker[$point2]); return number_format(($em + $es) - ($sm + $ss), $decimals); } // -------------------------------------------------------------------- /** * Memory Usage * * This function returns the {memory_usage} pseudo-variable. * This permits it to be put it anywhere in a template * without the memory being calculated until the end. * The output class will swap the real value for this variable. * www.2cto.com * @access public * @return string */ function memory_usage() { return '{memory_usage}'; } } // END CI_Benchmark class /* End of file Benchmark.php */ /* Location: ./system/core/Benchmark.php */

http://www.bkjia.com/PHPjc/477730.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/477730.htmlTechArticle[php] ?php if ( ! defined(BASEPATH)) exit(No direct script access allowed); /** * CodeIgniter * * An open source application development framework for PHP 5.1.6 or newer * * @packag...

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.