您好,登錄后才能下訂單哦!
這篇文章主要介紹“PHP7性能比之前提升多少”,在日常操作中,相信很多人在PHP7性能比之前提升多少問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”PHP7性能比之前提升多少”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!PHP中我們了解了那么多關于php7的知識,不知道你們對php7有多少了解,我相信很大一部分人會不知道這部分知識點,那么不急本篇文章就是帶領大家更深刻的去了解這個內容。
公司開源節流的大背景下 我們需要節省成本
PHP7相對于現在魅族線上的PHP版本5.X 性能提升至少一倍以上
社區日活用戶增長迅速(15年數據 日均PV 年增長348% 日均UV年增長112%)
移動互聯網的大環境下 要求我們的程序能夠更快的速度響應用戶的請求 以滿足更好的用戶體驗
對新技術的求知欲望(滿足自己的一點點虛榮心)
PHP5.1 5000個數快速排序平均響應時間2587ms
PHP5.2 5000個數快速排序平均響應時間2625ms
PHP5.3 5000個數快速排序平均響應時間2509ms
PHP5.4 5000個數快速排序平均響應時間2339ms
PHP7.0 5000個數快速排序平均響應時間685ms
PHP5.1 WordPress平均響應時間505ms
PHP5.2 WordPress平均響應時間521ms
PHP5.3 WordPress平均響應時間498ms
PHP5.4 WordPress平均響應時間470ms
PHP7.0 WordPress平均響應時間158ms
PHP5.4 500個數快速排序TPS 552
PHP7.0 500個數快速排序TPS 3165
Flyme社區APP首頁 PHP5.4 TPS 1535
Flyme社區APP首頁 PHP7.0 TPS 1975
Flyme社區APP板塊列表頁 PHP5.4 TPS 2237
Flyme社區APP板塊列表頁 PHP7.0 TPS 2387
1. JIT
2. Zval的改變
3. 內部類型zend_string
4. PHP數組的變化(HashTable和Zend Array)
5. 函數調用機制(Function Calling Convention)
6. 通過宏定義和內聯函數(inline),讓編譯器提前完成部分工作
Redis Proxy目的是為了做Redis高可用&分布式緩存用的
經過性能測試,相對直接連接redis而已,用Proxy的性能損耗在10-15%左右(不同的業務 可能影響有比較大的差異)
那么Proxy是不是還有優化的空間的呢?
PHP7 Redis長連接比短連接性能高10%左右(不同的業務差別比較大)
數據庫連接池負責分配、管理和釋放數據庫連接,它允許應用程序重復使用一個現有的數據庫連接,而不是再重新建立一個。
Atlas 是360開發和維護的數據庫中間件。是一個位于應用程序與MySQL之間,它實現了MySQL的客戶端與服務端協議,作為服務端與應用程序通訊,同時作為客戶端與MySQL通訊。它對應用程序屏蔽了DB的細節,同時為了降低MySQL負擔。
Atlas 支持主庫宕機不影響讀、讀寫分離、自動分表、安全處理、平滑重啟、連接池等
用了數據庫連接池后 TPS性能杠杠的 整整提高了80%
來看看效果吧
PHP是解釋型語言,Zend引擎會將PHP代碼解釋為可執行機器碼(Operate Code)之后再交由CPU執行。
Opcache是如何加速的
看看加了opcache后的成果吧(請求平均響應時間足足減少了一倍 有木有)
PGO是一項編譯優化技術,它可以配合GCC等編譯器使用,提高編譯器的編譯效率。
雖然PGO可以提高編譯效率,但它并沒有被廣泛使用。
原因很簡單:
1. 它繁雜的雙編譯模型 和 有限的使用場景,讓PGO顯得很雞肋
2. 在有了opcache這樣的產品出現后,PGO帶來的性能提升并不是很明顯。
<source lang="xml" collapse="false" first-line="1"> #php-fpm.conf listen = /dev/shm/php-fcgi.sock #php-fpm2.conf listen = /dev/shm/php-fcgi2.sock #/usr/local/php/sbin/php-fpm --fpm-config /usr/local/php/etc/php-fpm.conf #/usr/local/php/sbin/php-fpm --fpm-config /usr/local/php/etc/php-fpm2.conf #代理 upstream backend{ server unix:/dev/shm/php-fcgi.sock; server unix:/dev/shm/php-fcgi2.sock; } </source>
HugePage(提升2%-3%)
默認的內存是以4KB分頁的,而虛擬地址和內存地址是需要轉換的, 而這個轉換是要查表的,
CPU為了加速這個查表過程都會內建TLB(Translation Lookaside Buffer), 顯而易見如果虛擬頁越小,表里的條目數也就越多,
而TLB大小是有限的,條目數越多TLB的Cache Miss也就會越高, 所以如果我們能啟用大內存頁就能間接降低這個TLB Cache Miss。
<source lang="xml" collapse="false" first-line="1"> opcache.huge_code_pages=1 sudo sysctl vm.nr_hugepages=128 </source>
相性能參數優化
php.ini配置
<source lang="xml" collapse="false" first-line="1"> opcache.enable=1 opcache.enable_cli=1 opcache.memory_consumption=128 opcache.interned_strings_buffer=8 opcache.max_accelerated_files=4000 opcache.revalidate_freq=60 opcache.save_comments=0 opcache.fast_shutdown=1 opcache.huge_code_pages=1 opcache.file_cache=/dev/shm/opcache/ </source>
PHP-FPM
<source lang="xml" collapse="false" first-line="1"> listen = /dev/shm/php-fcgi.sock pm = static pm.max_children = 320 pm.max_requests = 10240 </source>
Nginx HTTPS的性能問題研究PHP7技術的背景
公司開源節流的大背景下 我們需要節省成本
PHP7相對于現在魅族線上的PHP版本5.X 性能提升至少一倍以上
社區日活用戶增長迅速(15年數據 日均PV 年增長348% 日均UV年增長112%)
移動互聯網的大環境下 要求我們的程序能夠更快的速度響應用戶的請求 以滿足更好的用戶體驗
對新技術的求知欲望(滿足自己的一點點虛榮心)
到此,關于“PHP7性能比之前提升多少”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。