PHP 5.3新版特性淺析(1)_PHP教程

來源:互聯網
上載者:User
從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

498)this.width=498;' onmousewheel = 'javascript:return big(this)' src="http://www.bkjia.com/uploadfile/2013/0904/20130904094555148.jpg" width=480>

可以看出,使用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裡解決各種問題的,作為一名程式員編寫高品質的代碼是最基本的要求。程式的記憶體使用量量少點和執行速度快點,在高並發下是有很效果的,有些時候你改動下實現方法,能提高几十倍也很正常,當然如果付出要很多收穫很少的時候就不要太執著了,我覺得一定要有編寫高品質代碼的意識。

三、?:操作符

其實就是js裡的||,返回的結果不是邏輯類型,而是返回本來變數的值,例如 false ?: 123返回123,而不是true。文法就是有點怪怪! 1

http://www.bkjia.com/PHPjc/446654.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/446654.htmlTechArticle從php4到php5,從個人架構到開源架構的發展,見證著php從山寨走上正規大軍的發展。php6還在醞釀中,相信php5會作為php6小試牛刀的場地。p...

  • 聯繫我們

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