PHP 5.3新版特性淺析

來源:互聯網
上載者:User

標籤:style   class   code   ext   width   http   

從php4到php5,從個人架構到開源架構的發展,見證著php從山寨走上正規大軍的發展。php6還在醞釀中,相信php5會作為php6小試牛刀的場地。php5.3是php5的一個裡程碑,加入了大量新特性。

我個人總感覺php功能是越來越多了,但是php的文法卻越來越醜陋了,有時加入了新功能,而新功能帶來了問題,為了修複問題,又要加入新的文法來修複,鬱悶。估計php用文法修複問題是為了更好的解析。

一、mysql驅動mysqlnd

一直以來,php都是通過mysql用戶端串連mysql,而現在mysql官方已經推出php版的mysql用戶端,而這個mysqlnd有效降低記憶體的使用以及提高效能。具體可以看:

http://dev.mysql.com/downloads/connector/php-mysqlnd/

http://forge.mysql.com/wiki/PHP_MYSQLND

可以看出,使用mysqlnd少了從mysql驅動中複製資料到php擴充這一步。mysqlnd使用copy-on-write,也就是寫時複製,讀引用。

mysqlnd已經內建在php5.3的源碼中,編譯的時候使用--with-mysql=mysqlnd、--with-mysqli=mysqlnd 和 --with-pdo-mysql=mysqlnd 安裝mysqlnd驅動。

mysqlnd的優點

編譯php更方便了,不需要libmysql,已經內建在源碼中

  1. 編譯php更方便了,不需要libmysql,已經內建在源碼中
  2. 使用php許可,避免著作權問題
  3. 使用php的記憶體管理,支援php記憶體限制(memory_limit)
  4. 所有資料在記憶體只有一份,之前的libmysql有兩份,參考
  5. 提供效能統計功能,協助分析瓶頸
  6. mysqli支援長串連(persistent connections)
  7. 效能絕對比libmysql要快
  8. 在驅動層增加緩衝機制

看了這麼多特點,有點矛盾,作為資料庫抽象層的PDO能把不同後端的特點發揮出來嗎?如果使用mysql作為資料庫的話mysqli是不是更好的選擇?我總覺得mysqli只是個過度產品,PDO才是未來的。

二、效能提高

  1. md5(長春九龍男科醫院)大概提高了10%-15%的效能
  2. Better stack implementation in the engine,沒明白
  3. 常量儲存在ROM裡(Constants moved to read-only memory),這裡沒明白意思
  4. 改進異常處理,作業碼(opcode)更簡潔
  5. 解決了include(require)_once重複開啟的問題,之前once我都是用靜態變數實現的,終於解決這個問題了
  6. 用gcc4編譯的二進位檔案將更小
  7. 整體效能提高了5%-15%

很多人覺得web的瓶頸在db,所以app應用的效能毫不在乎,我認為主要是因為app擴充比db擴充要容易得多,所以才會產生db瓶頸,但這並不意味著可以不顧慮app的效能,畢竟最終還是要在app裡解決各種問題的,作為一名程式員編寫高品質的代碼是最基本的要求。程式的記憶體使用量量少點和執行速度快點,在高並發下是有很效果的,有些時候你改動下實現方法,能提高几十倍也很正常,當然如果付出要很多收穫很少的時候就不要太執著了,我覺得一定要有編寫高品質代碼的意識。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.