提高php程式效能和負載測試

來源:互聯網
上載者:User

計算執行的時間
通過下面這個簡單的方法可以計算一段程式的執行時間(微妙)

 代碼如下 複製代碼

$start_time = microtime(true);

//一些需要計算時間的代碼
//... code here ...

print('代碼的已耗用時間是:'.getExecTime($start_time));

function getExecTime($start_time)
{
 return microtime(true)-$start_time;
}PEAR的Benchmark模組提供了更詳細的時間統計功能

require_once 'Benchmark/Timer.php';
$timer =& new Benchmark_Timer(true);
$timer->start();
// 設定函數
$timer->setMarker('setup');
// some more code executed here
$timer->setMarker('middle');
// even yet still more code here
$timer->setmarker('done');
// and a last bit of code here
$timer->stop();
$timer->display();通過declare結構和ticks指令可以實現自動記錄每一行PHP代碼執行的時間

// A function that records the time when it is called
function profile($dump = FALSE)
{
    static $profile;

    // Return the times stored in profile, then erase it
    if ($dump) {
        $temp = $profile;
        unset($profile);
        return ($temp);
    }

    $profile[] = microtime();
}

// Set up a tick handler
register_tick_function("profile");

// Initialize the function before the declare block
profile();

// Run a block of code, throw a tick every 2nd statement
declare(ticks=2) {
    for ($x = 1; $x < 50; ++$x) {
        echo similar_text(md5($x), md5($x*$x)), ";";
    }
}

// Display the data stored in the profiler
print_r(profile (TRUE));注意:ticks 指令在 PHP 5.3.0 中是過時指令,將會從 PHP 6.0.0 移除。

代碼排錯
主要介紹的是Advanced PHP Debugger(APD),通過設定可以產生追蹤檔案,對檔案進行分析可以得到指令碼的詳細資料

網站壓力測試
人們常混淆壓力測試和基準測試。基準測試是一種由單獨的開發人員完成的臨時活動,常用Apache HTTP測試載入器——ab,該工具可以測試一台HTTP伺服器每秒能相應的請求數。壓力測試是一種能中斷你WEB應用程式的測試技術,通過對斷點測試,能識別並修複應用程式中的弱點,為何時購置新硬體提供依據。常用的開源工具是Siege。

提速技巧
通過安裝PHP加速器可以有效提供PHP的執行速度,常見的三種加速器是Alternative PHP Cache(APC)、eAccelerator和ionCube PHP Accelerator(PHPA)。另外需要注意的是加速器的相容性通常會滯後於新發布的PHP版本。

另外提速技巧是在能不使用正則的時候盡量不要用,通常可替代的方案會比使用正則效率更高。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.