程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> 提高php程序性能和負載測試

提高php程序性能和負載測試

編輯:關於PHP編程

一篇關於提高php程序性能和負載測試的實例代碼,有需要的朋友可以看看如何提高自己程序的性能哦。

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

 代碼如下 復制代碼

$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版本。

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


  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved