如下代码,php中测试是if分支慢2.9秒,else分支快2.2秒,把if条件在1==1和1!=1变换,这是怎么样的机制造成的呢? $stime=microtime(true); //获取程序开始执行的时间
$j=0;
for($i=0;$i<5000000;$i++){
if(1!=1){
$j++;
}else
$j++;
} $etime=microtime(true);//获取程序执行结束的时间
$total=$etime-$stime; //计算差值
$str_total = var_export($total, TRUE);
if(substr_count($str_total,"E")){
$float_total = floatval(substr($str_total,5));
$total = $float_total/100000;
}
echo "$total".'秒';
$j=0;
for($i=0;$i<5000000;$i++){
if(1!=1){
$j++;
}else
$j++;
} $etime=microtime(true);//获取程序执行结束的时间
$total=$etime-$stime; //计算差值
$str_total = var_export($total, TRUE);
if(substr_count($str_total,"E")){
$float_total = floatval(substr($str_total,5));
$total = $float_total/100000;
}
echo "$total".'秒';
解决方案 »
- php通过飞信发送短信,飞信api,fetion api
- 关于PHP循环生成数组的问题,望大虾们赐教。。。。
- php5.3不支持$_GET[page]这样的函数了吗?
- phpmyadmin登录乱码问题
- 帮帮忙,phpmyadmin管理mysql数据库的疑惑?
- 请教PHP手册中,each函数中的一个例子。。。
- php中怎么样才可以跳转页面?像论坛回贴后那种跳转一样?
- 怎么样让PHP在WINDOWS下读盘
- PHP先声明类后创建对象 和 先创建对象后声明类
- 打开PHP网站出现报错function.require-once,文件在PHP中不存在。求大神帮助
- wampserver到底有什么用?
- js 取得动态添加后的数据
0.55976009368896秒
0.55944108963013秒
0.56911516189575秒
0.5602080821991秒
0.56702303886414秒
else
0.5650839805603秒
0.56633019447327秒
0.56741714477539秒
0.56370115280151秒
0.56349802017212秒
*/
这里的两块代码是一样的,应该执行时间大致是相同的吧
就算是C, 也是if 慢, else快, 答案如上楼。
如果是C,有细微差别,cpu会做分支预测,预测成功会有些许性能提升
可以搜索likely unlikely,linux内核中大量使用这个作性能优化
一般测试的工具方法有哪些?我要去测定各部分的耗时,耗CPU等情况