PHP中使用hidef扩展代替define提高性能 |
网站需要新加一个常量,打开了本地的config.php文件,想到了几年前测试过的hidef以及apc提升define性能的方案 。 而现在测试、生产服务器php都升级到5.4后,opcode缓存就使用了Zend opcache,不再安装APC 。因为有用到apc user cache,因此额外装了apcu,和apc用法一模样,完全不用改程序 。而apcu不支持apc_load_constants和apc_define_constants,因此apc这个方案就无法用了 。去官网装了最新版hidef 0.1.13,2012-7-12发布的stable,一年多了 。 写了个简单程序测试define化的时间,大概运行1000次需要2.8ms 。那么对于一个中型网站(例如一天php运行1000w次)来说,如果每页定义25个常量,大概每天需要化 10000000*25/1000*2.8=700000ms,就是700秒 。差不多使用hidef可以一天节省700s的PHP运行时间 。 hidef具体安装方法参见:提高define性能的php扩展hidef的安装和使用 在百度里搜索“hidef”,排第3位的是一个copy我博文的网站:( 而我自己发布的提高define性能的php扩展hidef的安装和使用在前三页没有找到 。显然是百度对原创的识别出了些偏差 。 百度搜索“hidef php”,那个网址排第一,第二是官网,我的在第三 。 360搜索"hidef php",第一那个copy站,第二我的,第三另一篇原创 。
复制代码 代码如下: if (function_exists(apc_load_constants)) { function define_array($key, $arr, $case_sensitive = false) { if (!apc_load_constants($key, $case_sensitive)) { apc_define_constants($key, $arr, $case_sensitive); } } $constants = array( define_array(hx_defined,$constants);
复制代码 代码如下: <?php $t1 = microtime(1); $constants = array( function define_array($key, $arr) { //读性能 $t1 = microtime(1); |