先上代码 (文件名是闭着眼睛取的, 不是重点)
unix.zep
namespace Rex;
class Unix
{
public static function time_stamp()
{
return time();
}
public static function time_stamp_ms()
{
return intval(microtime(true)*1000);
}
public static function looploop(int! times){
loop {
let times --;
if times <= 0 {break;}
self::looploop(times);
}
}
}
zephir bulid
namespace Pex;
class Unix{
public static function unix_time_stamp(){
return time();
}
public static function unix_time_stamp_ms(){
return intval(microtime(true)*1000);
}
public static function looploop($times){
for(;;){
$times --;
if ($times <= 0){
break;
}
self::looploop($times);
}
}
}
$times = 25; $begin_time = Unix::unix_time_stamp_ms(); Unix::looploop($times); $end_time = Unix::unix_time_stamp_ms(); echo $end_time - $begin_time; echo "\n"; $begin_time = Unix::unix_time_stamp_ms(); \Rex\Unix::looploop($times); $end_time = Unix::unix_time_stamp_ms(); echo $end_time - $begin_time; echo "\n"; $begin_time = Unix::unix_time_stamp_ms(); Unix::looploop($times); $end_time = Unix::unix_time_stamp_ms(); echo $end_time - $begin_time; echo "\n";
#php test.php 1286 8928 1227
Ubuntu
我测试的结果是
zephir并不见得更快
但是可以用来保护版权
我竟无言以对。。总的来说,还是有优势的吧。
不会吧,一百亿次循环,都不需要一秒,10万长度的数组,经过了5千万次循环进行冒泡排序,时间也没能超过一秒,如果再把数字设大,就内存不够了。