> php教程 > php手册 > 提高php程序性能和负载测试

提高php程序性能和负载测试

WBOY
풀어 주다: 2016-05-25 16:39:14
원래의
1071명이 탐색했습니다.

一篇关于提高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版本.

另外提速技巧是在能不使用正则的时候尽量不要用,通常可替代的方案会比使用正则效率更高.                                        


文章链接:

随便收藏,请保留本文地址!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 이슈
인기 추천
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿