最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

PHP中使用hidef擴(kuò)展代替define提高性能

 更新時間:2015年04月09日 09:36:53   投稿:junjie  
這篇文章主要介紹了PHP中使用hidef擴(kuò)展代替define提高性能,本文著重測試hidef的性能,同時介紹了安裝方法和使用示例,需要的朋友可以參考下

網(wǎng)站需要新加一個常量,打開了本地的config.php文件,想到了幾年前測試過的hidef以及apc提升define性能的方案。
我的程序中有對開發(fā)、測試、生產(chǎn)服務(wù)器分別做了不同的配置,在常量方面則使用了一個數(shù)組定義了所有需要定義的常量,然后檢測是否有apc_load_constants函數(shù),沒有的話,批量define。使用apc時,每增加一個常量,還需要修改一下$key才能生效。

而現(xiàn)在測試、生產(chǎn)服務(wù)器php都升級到5.4后,opcode緩存就使用了Zend opcache,不再安裝APC。因為有用到apc user cache,因此額外裝了apcu,和apc用法一模樣,完全不用改程序。而apcu不支持apc_load_constants和apc_define_constants,因此apc這個方案就無法用了。去官網(wǎng)裝了最新版hidef 0.1.13,2012-7-12發(fā)布的stable,一年多了。

寫了個簡單程序測試define化的時間,大概運(yùn)行1000次需要2.8ms。那么對于一個中型網(wǎng)站(例如一天php運(yùn)行1000w次)來說,如果每頁定義25個常量,大概每天需要化 10000000*25/1000*2.8=700000ms,就是700秒。差不多使用hidef可以一天節(jié)省700s的PHP運(yùn)行時間。
再看看讀的性能好了,測試讀1w次一個常量,值都是1,分別是37ms和0.7ms。那么如果一天1000w次,每頁平均使用20個常量,則需要740秒,而使用hidef是14秒,好吧,又一個700多秒。
一天省1400秒php運(yùn)行時間,也許是還是微不足道,但總是好的,也是值的嘗試的,畢竟define的參數(shù)變化的機(jī)率非常少。
當(dāng)define參數(shù)需要修改時,修改配置文件,然后重載下php-fpm,就好了。

hidef具體安裝方法參見:提高define性能的php擴(kuò)展hidef的安裝和使用

在百度里搜索“hidef”,排第3位的是一個copy我博文的網(wǎng)站:( 而我自己發(fā)布的提高define性能的php擴(kuò)展hidef的安裝和使用在前三頁沒有找到。顯然是百度對原創(chuàng)的識別出了些偏差。

百度搜索“hidef php”,那個網(wǎng)址排第一,第二是官網(wǎng),我的在第三。
gg搜索“hidef php”,第一官網(wǎng),第3是另一篇原創(chuàng),我的在第四。gg的識別就不錯!

360搜索"hidef php",第一那個copy站,第二我的,第三另一篇原創(chuàng)。
因此有了這篇的誕生,看看能不能幫第一篇排上去或者這篇排上去也行。


附原配置常量的程序示例代碼:

復(fù)制代碼 代碼如下:

  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);
                }

            }
        } else {
            function define_array($key, $arr, $case_sensitive = false) {
                foreach ($arr as $name => $value) {
                    define($name, $value, $case_sensitive);
                }
            }
        }

        $constants = array(
            'HX'   => 1,
            'BLOG_URL'   => 'http://m.fzitv.net/',
            'WWW_URL'   => 'http://m.fzitv.net/',
        );

        define_array('hx_defined',$constants);


附測試define速度的代碼。

復(fù)制代碼 代碼如下:

<?php

$t1 = microtime(1);

    $constants = array(
        'hx1'       => 1,
        'hx2'       => '2',
        'hx3'       => '3',
        'hx4'       => '4',
        'hx5'       => '5',
        'hx6'       => '6',
        'hx7'       => '7',
        'hx8'       => '8',
        'hx9'       => '9',
        'hx10'       => '10',
    );

    function define_array($key, $arr) {
        foreach ($arr as $name => $value) {
            define($name.$i, $value);
        }
    }
   
    for($i=0;$i<100;$i++) {
        define_array($i,$constants);
    }
   
   
$t2 = microtime(1);
echo ($t2-$t1)*1000;

//讀性能
$t1 = microtime(1);
for($i=0;$i<10000;$i++) {
    $t = hx1;
}   
$t2 = microtime(1);
echo ' '.($t2-$t1)*1000;

$t1 = microtime(1);
for($i=0;$i<10000;$i++) {
    $t = HX;
}   
$t2 = microtime(1);
echo ' '.($t2-$t1)*1000;

相關(guān)文章

  • PHP頁面中文亂碼分析

    PHP頁面中文亂碼分析

    php出現(xiàn)出現(xiàn)亂碼的原因:頁面文件的編碼方式(.html,.php等)、html.head中指定瀏覽器的編碼方式、MySql數(shù)據(jù)庫傳輸?shù)木幋a方式、Apache字符集。
    2013-10-10
  • PHP常用的緩存技術(shù)匯總

    PHP常用的緩存技術(shù)匯總

    這篇文章主要介紹了PHP常用的緩存技術(shù)匯總,下面所說的都是在項目中最常用的PHP緩存技術(shù),新手同學(xué)收藏起來好好研究吧
    2014-05-05
  • php項目開發(fā)中用到的快速排序算法分析

    php項目開發(fā)中用到的快速排序算法分析

    這篇文章主要介紹了php項目開發(fā)中用到的快速排序算法,結(jié)合實例形式詳細(xì)分析了php快速排序的原理與使用方法,需要的朋友可以參考下
    2016-06-06
  • php eval函數(shù)用法總結(jié)

    php eval函數(shù)用法總結(jié)

    這個函數(shù)我想很多朋友都知道,黑客用得最多的一句了,可以解析php 代碼并且運(yùn)行哦,eval是函數(shù)不可在php中禁止,以前我就以為可以在php.ini禁止此函數(shù),結(jié)果失敗了
    2012-10-10
  • PHP實現(xiàn)對二維數(shù)組某個鍵排序的方法

    PHP實現(xiàn)對二維數(shù)組某個鍵排序的方法

    這篇文章主要介紹了PHP實現(xiàn)對二維數(shù)組某個鍵排序的方法,涉及php針對數(shù)組的遍歷、比較、排序等相關(guān)操作技巧,需要的朋友可以參考下
    2016-09-09
  • 最新評論

    陈巴尔虎旗| 丽水市| 石嘴山市| 精河县| 藁城市| 博客| 中山市| 武胜县| 永春县| 新和县| 灌南县| 六枝特区| 隆尧县| 娄底市| 云阳县| 西吉县| 宽城| 桃江县| 弥渡县| 永宁县| 潼南县| 许昌市| 海盐县| 奇台县| 新干县| 永清县| 蕉岭县| 荆州市| 民县| 弥渡县| 永靖县| 定结县| 梁平县| 安仁县| 肥城市| 宕昌县| 石首市| 琼结县| 阜阳市| 潞西市| 德州市|