当前位置:  开发笔记 > 编程语言 > 正文

如何在PHP中定义效率?

如何解决《如何在PHP中定义效率?》经验,为你挑选了3个好方法。

C++预处理器#define完全不同.

PHP define()与创建var有什么不同吗?

define("SETTING", 0);  
$something = SETTING;

VS

$setting = 0;  
$something = $setting;

小智.. 17

'define'操作本身相当慢 - 由xdebug profiler确认.

以下是http://t3.dotgnu.info/blog/php/my-first-php-extension.html的基准测试:

纯'定义'
380.785提取/秒
14.2647意味着msecs/first-response

用'hidef'扩展名定义的常量930.783
fetches/sec
6.30279表示msecs/first-response


断链更新

上面引用的博客帖子已离开互联网.它仍然可以通过Wayback Machine查看.这是另一篇类似的文章.

作者引用的库可以在这里找到(apc_define_constants)和这里(hidef扩展名).



1> 小智..:

'define'操作本身相当慢 - 由xdebug profiler确认.

以下是http://t3.dotgnu.info/blog/php/my-first-php-extension.html的基准测试:

纯'定义'
380.785提取/秒
14.2647意味着msecs/first-response

用'hidef'扩展名定义的常量930.783
fetches/sec
6.30279表示msecs/first-response


断链更新

上面引用的博客帖子已离开互联网.它仍然可以通过Wayback Machine查看.这是另一篇类似的文章.

作者引用的库可以在这里找到(apc_define_constants)和这里(hidef扩展名).



2> Till..:

一般来说,常量的想法是在你的程序中保持不变(听起来很有趣,对吧?;)).这意味着编译器(解释器)将在整个脚本中用FOOBAR的值替换"FOOBAR".

理论和优势如此之多 - 如果你编译的话.现在PHP非常动态,在大多数情况下你不会注意到不同,因为PHP脚本是在每次运行时编译的.除非你使用像APC,Zend Optimizer或eAccelerator这样的字节码缓存,否则Afai-can-tell你不应该看到常量和变量之间的速度有显着差异.那它就有意义了.

这里已经注意到常量的所有其他优点/缺点,可以在PHP手册中找到.



3> JAL..:
php > $cat='';$f=microtime(1);$s='cowcow45';$i=9000;while ($i--){$cat.='plip'.$s.'cow';}echo microtime(1)-$f."\n";

0.00689506530762

php > $cat='';$f=microtime(1);define('s','cowcow45');$i=9000;while ($i--){$cat.='plip'.s.'cow';}echo microtime(1)-$f."\n";

0.00941896438599

这是可重复的,具有类似的结果.在我看来,常量定义和/或使用比变量慢一点.

推荐阅读
手机用户2502852037
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有