php緩衝相關

來源:互聯網
上載者:User

標籤:style   blog   http   os   io   檔案   ar   cti   

在php運行期間,php引擎要對php源碼進行處理,(詞法分析,文法分析等)然後產生opcode。

然後再運行。在這個階段可以把opcode緩衝起來,當下次需要運行這段程式的時候,就避免了再次 進行詞法分析,文法分析,直接拿opcode來用。

eAccelerator就是這樣的程式。

 

用vld查看php的opcode:

http://pecl.php.net/package/vld/0.12.0/windows

在上面的地址下載vld,解壓後 將 php_vld.dll,拷貝到ext目錄下。

修改php.ini,增加“extension=php_vld.dll”;

要查看opcode,建立一個php指令碼,cmd下執行

“E:\xampp\php>php -dvld.active=1 e:\htdocs\mytest\n.php”命令。

顯示結果:

E:\xampp\php>php -dvld.active=1 e:\htdocs\mytest\n.phpFinding entry pointsBranch analysis from position: 0Jump found. Position 1 = 13, Position 2 = 6Branch analysis from position: 13Return foundBranch analysis from position: 6Jump found. Position 1 = 3Branch analysis from position: 3Jump found. Position 1 = 1Branch analysis from position: 1filename:       E:\htdocs\mytest\n.phpfunction name:  (null)number of ops:  14compiled vars:  !0 = $iline     # *  op                           fetch          ext  return  operands---------------------------------------------------------------------------------  30     0  >   ASSIGN                                                   !0, 0         1  >   IS_SMALLER                                       ~1      !0, 100         2    > JMPZNZ                                        6          ~1, ->13         3  >   POST_INC                                         ~2      !0         4      FREE                                                     ~2         5    > JMP                                                      ->1  31     6  >   CONCAT                                           ~3      ‘a‘, !0         7      FETCH_W                      local               $4      ~3         8      ASSIGN                                                   $4, !0  32     9      CONCAT                                           ~6      ‘a‘, !0        10      FETCH_R                      local               $7      ~6        11      ECHO                                                     $7  33    12    > JMP                                                      ->3  36    13  > > RETURN                                                   1branch: #  0; line:    30-   30; sop:     0; eop:     0; out1:   1branch: #  1; line:    30-   30; sop:     1; eop:     2; out1:  13; out2:   6branch: #  3; line:    30-   30; sop:     3; eop:     5; out1:   1branch: #  6; line:    31-   33; sop:     6; eop:    12; out1:   3branch: # 13; line:    36-   36; sop:    13; eop:    13path #1: 0, 1, 13,path #2: 0, 1, 6, 3, 1, 13,0123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899

安裝eAccelerator:

下載:http://www.sitebuddy.com/php/accelerators/eaccelerator-windows-binaries

下載下來的檔案解壓後,將dll檔案,貝到ext下

修改php.ini,開啟

    [eAccelerator]    zend_extension_ts="C:/php/ext/eaccelerator.dll"       //路徑根據實際情況而定    eaccelerator.shm_size="32"       //根據系統記憶體來定,預設16M,可以改成64M    eaccelerator.cache_dir="C:/php/temp"     //前面建立的緩衝檔案夾    eaccelerator.enable="1"    eaccelerator.optimizer="1"    eaccelerator.check_mtime="1"    eaccelerator.debug="0"    eaccelerator.filter=""    eaccelerator.shm_max="0"    eaccelerator.shm_ttl="0"    eaccelerator.shm_prune_period="0"    eaccelerator.shm_only="0"    eaccelerator.compress="1"    eaccelerator.compress_level="9"

配置redis:

下載http://www.redis.cn/download.html

解壓後有兩個dll檔案,全部拷貝到ext目錄下。[我拷貝到ext,還提示找不到。最後拷貝到php.exe目錄下才不再報錯]。

修改php.ini

添加

"extension=php_igbinary.dll

 extension=php_vld.dll"

重啟apache,phpinfo();可以查看是否啟動。

 

測試redis:

$redis = new Redis();  $redis->connect("192.168.0.110","6379");  //php用戶端設定的ip及連接埠  //儲存一個 值  $redis->set("say","Hello World");  echo $redis->get("say");     //應輸出Hello World    //儲存多個值  $array = array(‘first_key‘=>‘first_val‘,            ‘second_key‘=>‘second_val‘,            ‘third_key‘=>‘third_val‘);  $array_get = array(‘first_key‘,‘second_key‘,‘third_key‘);  $redis->mset($array);  var_dump($redis->mget($array_get));  

 

 

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.