PHP的語言層面的優化以及代碼優化技巧

2020-12-15 站長之家
首頁

 > 

語言

 > 

關鍵詞

 > 

php最新資訊

 > 

正文

PHP的語言層面的優化以及代碼優化技巧

大規模的系統開發中,Cache無疑是至關重要的,php世界裡,雖然不如java當中,有那麼豐富的cache解決方案可以選擇,但是,仍然有一些成熟的方案。

1、語言層面的優化:php具有不少引擎(engine)層面的api,通過這些api,可以改變引擎執行的行為,從而達到優化運行的目的。其中,最值得 去做的就是對編譯結果cache。眾所周知,php每次執行都需要經歷原始碼–〉編譯–〉中間代碼–〉引擎執行 這樣的過程,對於一些大型應用,相當多的時間花費在無益的編譯上了(不僅僅是訪問頁面的php文件需要經過編譯環節,當腳本中利用require(), include()包含的一些文件都需要經過編譯)。通過對編譯結果的cache,能夠極大地提高系統的性能(和系統複雜性、規模成正比) 。

 


php世界中三個主流的能夠實現編譯cache的工具是:

The Zend Accelerator—A commercial, closed-source, for-cost compiler cache produced by Zend Industries
The ionCube Accelerator—A commercial, closed-source, but free compiler cache written by Nick Lindridge and distributed by his company, ionCube
APC—A free and open-source compiler cache written by Daniel Cowgill and George Schlossnagle
APC的安裝方法,APC包含在PECL中,具體安裝如下 190-823  190-802 : 

運行命令

 


#pear install apc

 

之後,在php.ini文件中添加:


extension = /path/to/apc.so

 


這樣,就完成了安裝,當下次運行php,APC就會自動激活,將編譯結果放入共享內存中cache起來,下次再執行的時候就直接從內存中獲取編輯結果執行,不需要再次編譯。

 


疑問:對於自上次編譯後變動了的php,APC是否能夠自動重新編譯?


2、php代碼優化:利用一些工具能夠市的編譯後產生優質中間代碼,具體如下:

The Zend Optimizer is a closed-source but freely available optimizer.
The ionCube accelerator contains an integrated optimizer.
proof-of-concept optimizer in PEAR.
優化器主要的功能:

 

1、清除無用的代碼,例如永遠也不會執行的死代碼。


2、常量的計算,例如將$seconds_in_day = 24*60*60直接變為$seconds_in_day = 86400;

3、其它代碼優化功能,例如有這麼一個語句:

    $count++;

 


    會優化為++$count,使得執行速度更快。 當然,如果語句是$i = $count++;則不會進行優化 

 

相關焦點

  • 新手必須要懂的PHP學習路線以及10個PHP優化技巧
    之類的影響性能的配置),知道mod_php/fastcgi的區別;在PHP方面已經能夠熟練各種基礎技術,還包括各種深入些的PHP,包括對PHP面向對象的深入理解/SPL/語法層面的特殊特性比如反射之類的;在框架方面已經閱讀過最少一個以上常規PHP MVC框架的代碼了,知道基本PHP框架內部實現機制和設計思想;在PHP開發中已經能夠熟練使用常規的設計模式來應用開發(抽象工廠/單例/觀察者/命令鏈/策略
  • 性能優化之PHP優化
    在我們平常寫代碼的過程中,除了資料庫的優化,針對與文件的優化,我們還需要對PHP執行優化,當然對於老司機來說,這都是毛毛雨咯~但是畢竟有新手嘛,於是,我整理這麼一片文章。(未完待續...)在某些情況下,你可以使用 isset() 技巧加速執行你的代碼。例如:$str = 'catlane';if(strlen($str) < 8){ echo 'Str is too short';}if (!
  • PHP代碼20個實用技巧
    在這篇文章中我們將看看一些關於PHP開發有用的提示和技巧,可以用來改善和優化您的PHP代碼。
  • 站內優化:代碼優化和標籤優化對網站的重要性
    另外,一些網站會使用外部文件,將css和js放在外部文件中,頁面html中只要放一樣代碼調用就可以了,有時候我們去查看的一些源文件代碼,會看到很多css代碼以及javasript代碼,將javascript放置在網站頁面的html文件中的最前面,而真正能用到得一些文字部分這被推倒了html的後面,個人認為這種代碼都需要精簡。3、CSS代碼本身的優化。
  • 「技巧篇」循環代碼優化技巧
    本文字數:1178 字閱讀本文大概需要:3 分鐘00.寫在之前「代碼優化」應該是我們時刻記在心裡的一件事情,從一開始就建立一種正確的編程觀念關於如何在循環上考慮優化代碼,就是下面我要介紹的內容。01.循環代碼優化技巧 1:減少循環內部不必要的計算什麼算是不必要的計算,就是指那些無論放在循環裡面還是放在循環外面都不會改變程序運行結果,對於這樣的能放到循環外面的一定要放到循環外面。
  • 全方位解讀php8.0版本優化與改進
    除非你一直生活在一塊石頭下,或者生活在過去,否則你會意識到JIT正在進入PHP 8:投票今天悄然結束,絕大多數人贊成合併到PHP8,所以,這是正式的,本文全方位解讀php8.0版本優化與改進。PHP8 官宣《PHP8首個版本 Alpha1 發布!》
  • PHP+MySQL實現對一段時間內每天數據統計優化操作實例
    關注我喲小編 隔天推送php教程,php技巧,php視頻教程,MySQL,筆試題等諸多優質內容,最接地氣、重服務的本地微信平臺!關注我們妥妥沒錯!(商務合作聯繫QQ號:2230304070)http://www.jb51.net/article/136685.htm這篇文章主要介紹了PHP+MySQL實現對一段時間內每天數據統計優化操作,結合具體實例形式分析了php針對mysql查詢統計相關優化操作技巧
  • 英文站點代碼優化操作注意事項-賓哥網站優化
    國內網站優化主要針對是百度、360、搜狗,國外英文站點優化主要針對的是谷歌、雅虎、MSN等。在網站搜尋引擎優化上大面上都是以用戶體驗為主進行站點代碼優化,而針對不同的區域,面對不同的類型的站點在代碼優化上也是有所不同的。
  • 嵌入式C語言優化你不能不知道的技巧……
    導讀:嵌入式系統受其使用的硬體以及運行環境的限制,非常注重代碼的時間和空間效率,因此選擇一種合適的開發語言十分重要。目前,在嵌入式系統開發中可使用的語言很多,其中 C語言應用得最廣泛。小創給大家整理了一些在程序設計中的代碼優化小技巧。作為一種結構化程序設計語言,C 語言兼顧多種高級語言的特點,具有很強的功能性和可移植性。
  • 優化技巧!快速集成WP資料庫清理中文插件wp-clean-up到主題
    文件寫入代碼清除修訂版本,就想有沒有更好的資料庫清理優化技巧。此種方法有兩個優點:①無需安裝插件,直接在後臺生成自帶功能,無須佔用插件空間;②只需簡單兩步便可實現資料庫優化清理,操作簡單方便。集成後效果圖如下:
  • 如何從系統層面優化深度學習計算?
    然而,深度學習對於計算能力有著很大的依賴,除了改變模型和算法,是否可以從系統的層面來優化深度學習計算,進而改善計算資源的使用效率?本文中,來自微軟亞洲研究院異構計算組資深研究員伍鳴與大家分享他對深度學習計算優化的一些看法。深度學習在近幾年裡取得了巨大的進步,它已經或者是有望成功地被應用在我們許多生活場景中,比如自動駕駛、安防、翻譯、醫療等等。
  • 如何正確使用MDK-ARM優化功能,以及優化之後帶來的影響
    本節詳細講述優化相關選項,同時,編譯器選擇AC5和AC6時有差異,下面也會針對AC5和6分別講述。1.Use Cross-Module Optimization:使用跨模塊優化使用跨模塊優化可以啟用連結器反饋文件(進行兩次編譯),從而允許進一步的代碼優化。
  • php語言是什麼?學好php需要掌握什麼?
    php容易學習,使用廣泛,主要適用於Web開發領域,PHP是Hypertext Preprocessor的簡稱,用中文翻譯過來的意思是「超文本預處理器」它是一種通用開源腳本語言。php的語法有C、Java和Perl的特點也有自創的特點,經過了24年的發展php從最初的1.0發展7.0版本,php的功能已經發展非常強大,php是適合編程零基礎入手的一門程式語言,下面為大家介紹一下學習php需要經過哪些過程?
  • 最常見的網站程式語言
    作為網站SEOer筆者小丹本身對於優化運營技術要優於代碼,但是如果你對網站程式語言一竅不通那麼你只能成為是一個網站編輯而不是一位合格的SEOer。所以今天筆者小丹要和大家放開關於純粹的優化技術而來了解一下目前最常見的網站程式語言,讓我們能夠更好的為網站運營服務。
  • 揭秘 Vue.js 九個性能優化技巧
    雖然距大佬的分享已經有兩年時間,但是其中的優化技巧並沒有過時,為了讓更多的人了解並學習到其中的實用技巧,我決定對他的分享做二次加工,詳細闡述其中的優化原理,並做一定程度的擴展和延伸。本文主要還是針對 Vue.js 2.x 版本,畢竟接下來一段時間,Vue.js 2.x 還是我們工作中的主流版本。
  • 嵌入式平臺ARM的C代碼優化方法
    本文介紹了ARM平臺的C代碼優化方法,從數據類型選擇、數據結構組織、局部變量選擇、函數inline內聯、編譯器選項、循環展開、條件執行、數據操作的轉化、存儲器的優化、代碼尺寸的優化等角度給出常用的優化方法。
  • PHP學習資料推薦(書籍篇)
    根據我自己對php後端認知,以及現在市場需求了解到的,推薦下學習資料,分書籍,視頻和公眾號,博客四類,這次主要推薦書籍,方便大家後面學習提高。書與書之前也有差別,以下推薦主要是名著,能有效傳輸知識書籍,涵蓋前端,軟體工程,微服務,分布式系統,高流量網站建設,php基礎,php框架源碼解讀,php內核解讀,redis應用,運維以及優化和內核解讀,mongodb基礎,分片,集群,mysql基礎,innodb源碼解讀,mysql配置,語句,索引優化,nginx應用,配置優化,源碼解讀,linux 網絡編程,c語言基礎,算法(c描述),tcp/http
  • 優化PHP性能的五個實用技巧
    以下是五個優化技巧,熟練掌握後對於開發還是很有幫助的。1.對字符串使用單引號PHP引擎允許使用單引號和雙引號來封裝字符串變量,但是這個是有很大的差別的!使用雙引號的字符串告訴PHP引擎首先去讀取字符串內容,查找其中的變量,並改為變量對應的值。一般來說字符串是沒有變量的,所以使用雙引號會導致性能不佳。
  • 最全的Android內存優化技巧
    作者:Geekholt地址:https://www.jianshu.com/p/51e28a2c609c前言在Android中,內存是十分寶貴的資源,內存優化有助於提高用戶的體驗,所以學習內存優化技巧是非常重要的。
  • 優化關鍵渲染路徑
    此文上接《關鍵渲染路徑》,給這篇文章做一個鋪墊,不懂什麼是「關鍵渲染路徑」的小夥伴可以從上一篇文章開始,本文將談談如何優化關鍵渲染路徑。優化關鍵渲染路徑可以提升網頁的渲染速度,從而得到一個更好的用戶體驗。如何優化關鍵渲染路徑?優化關鍵渲染路徑有很多種方法與情況,不同情況下優化方式也各不相同,初步看起來這些優化方法五花八門,知識非常的零散。