新四季網

Php代碼編譯方法、php代碼運行方法及裝置製造方法

2024-03-31 19:17:05 1

Php代碼編譯方法、php代碼運行方法及裝置製造方法
【專利摘要】本發明公開了一種PHP代碼編譯方法、PHP代碼運行方法及裝置,包括:獲取待編譯PHP代碼後,對該待編譯PHP代碼進行編譯,得到與該待編譯PHP代碼對應的Opcode?Array,該Opcode?Array中包括用於在該Opcode?Array被Web應用執行時獲取上述待編譯PHP代碼對應該Web應用的代碼目錄的目錄獲取代碼;並緩存該Opcode?Array,用於Web伺服器上各Web應用運行上述待編譯PHP代碼。採用本發明實施例提供的方案,節省了Web伺服器的處理資源和存儲資源,提高了Web伺服器性能。
【專利說明】PHP代碼編譯方法、PHP代碼運行方法及裝置
【技術領域】
[0001]本發明涉及計算機領域,尤其涉及一種PHP代碼編譯方法、PHP代碼運行方法及裝置。
【背景技術】
[0002]超文本預處理語言PHP (Hypertext Preprocessor)是一種動態網站腳本程式語言,可以運行在網際網路Web服務端,通常跟開源的Web伺服器一起搭建動態Web站點。
[0003]現有技術中運行PHP代碼的流程可以如下:
[0004]第一步,編譯PHP代碼為一系列操作碼Opcode組成的集合,可以稱為操作碼陣列Opcode Array ;
[0005]第二步,加載並執行該Opcode Array。
[0006]相同的PHP代碼,編譯之後的Opcode Array也是相同的,所以為了提高PHP代碼的運行效率,在編譯完成後可以緩存PHP代碼對應的Opcode Array,以便後續需要再次運行該PHP代碼時,直接獲取緩存的與該PHP代碼對應的Opcode Array執行,從而省去了編譯代碼的步驟,提高了 PHP代碼的運行效率。
[0007]雲計算中的平臺即服務(PaaS, Platform-as-a-server)模式,是將軟體研發平臺作為一種服務提供給用戶,用戶僅需將應用託管至PaaS平臺上,應用的運維、數據監控和數據統計等工作均由PaaS平臺來完成。
[0008]在提供PaaS平臺的Web伺服器中,需要運行多個Web應用,該Web應用也可以是Web網站。在同一臺Web伺服器上,同一 PHP代碼,對應不同Web應用的代碼目錄是不同的,而PHP代碼在編譯之後會產生與代碼目錄相關的常量值,該常量值是包含在生成的OpcodeArray中。因此,即使不同的Web應用中存在相同的PHP代碼,由於對應不同Web應用該PHP代碼的代碼目錄不同,則編譯所生成的Opcode Array也因所包含的該常量值不同而有所不同。
[0009]在實際應用中,大量的Web應用可能使用相同的PHP開源軟體,所以同一臺Web伺服器上不同的Web應用將使用一些相同PHP代碼,然而由於對應不同Web應用該相同PHP代碼的代碼目錄是不同的,所以緩存的Opcode Array不同,使得針對每個Web應用都需要編譯一次該PHP代碼,且都將緩存一份該PHP代碼對應的Opcode Array,從而導致Web伺服器處理資源和存儲資源的浪費,降低Web伺服器性能,並且相同的PHP代碼的重複編譯也降低了代碼的運行效率。

【發明內容】

[0010]本發明實施例提供一種PHP代碼編譯方法及裝置,用以解決現有技術中存在的具有多個Web應用的Web伺服器在緩存PHP代碼對應的Opcode Array時處理資源和存儲資源浪費的問題。
[0011]本發明實施例還提供一種PHP代碼運行方法及裝置,用以解決現有技術中存在的具有多個Web應用的Web伺服器在運行PHP代碼時效率較低的問題。
[0012]本發明實施例提供一種PHP代碼編譯方法,包括:
[0013]獲取待編譯PHP代碼;
[0014]對所述待編譯PHP代碼進行編譯,得到與所述待編譯PHP代碼對應的OpcodeArray,所述Opcode Array中包括用於在所述Opcode Array被Web應用執行時,獲取所述待編譯PHP代碼對應該Web應用的代碼目錄的目錄獲取代碼;
[0015]緩存所述Opcode Array,用於Web伺服器上各Web應用運行所述待編譯PHP代碼。
[0016]本發明實施例提供的方法中,由於經過編譯得到的與待編譯PHP代碼對應的Opcode Array中,包括的是用於在該Opcode Array被Web應用執行時獲取該待編譯PHP代碼對應該Web應用的代碼目錄的目錄獲取代碼,而並非是該待編譯PHP代碼對應某一個Web應用的代碼目錄,因此針對不同Web應用,相同PHP代碼經過編譯生成的Opcode Array相同,所以該相同PHP代碼只需編譯一次,並將Opcode Array緩存,各Web應用即可以共享緩存的與該相同PHP代碼對應的Opcode Array,節省了 Web伺服器的處理資源和存儲資源,提高了 Web伺服器性能。
[0017]進一步的,緩存所述Opcode Array,具體包括:
[0018]將包含所述待編譯PHP代碼的代碼文件所在的節點信息作為鍵key,所述OpcodeArray作為值value,其中,所述待編譯PHP代碼在同一 Web伺服器上僅保存在一個代碼文件中;對應緩存所述節點信息和所述Opcode Array。
[0019]這樣,可以使得當後續需要運行該待編譯PHP代碼時,可以通過包含該待編譯PHP代碼的代碼文件所在的節點信息對應的key,確定與該key對應的value,並確定是否緩存有與其對應的Opcode Array。
[0020]進一步的,緩存所述Opcode Array,具體包括:
[0021 ] 將所述待編譯PHP代碼的唯一代碼標識作為key ,所述Opcode Array作為值value ;對應緩存所述唯一代碼標識和所述Opcode Array ?
[0022]這樣,可以使得當後續需要運行該待編譯PHP代碼時,可以通過該待編譯PHP代碼的唯一代碼標識對應的key,確定與該key對應的value,並確定是否緩存有與其對應的Opcode Array。
[0023]本發明實施例還提供一種PHP運行方法,包括:
[0024]Web伺服器上的各Web應用在需要運行PHP代碼時,確定緩存中是否已經存在與待運行PHP代碼對應的Opcode Array ;
[0025]當緩存中未存在與所述待運行PHP代碼對應的Opcode Array時,對所述待運行PHP代碼進行編譯,得到與所述待運行PHP代碼對應的Opcode Array,所述Opcode Array中包括用於在所述Opcode Array被Web應用執行時,獲取所述待運行PHP代碼對應該Web應用的代碼目錄的目錄獲取代碼;以及,緩存並執行編譯得到的所述Opcode Array ;
[0026]當緩存中已經存在與所述待運行PHP代碼對應的Opcode Array時,執行與所述待運行PHP代碼對應的Opcode Array。
[0027]採用本發明實施例提供的上述方法,當Web伺服器上的各Web應用在需要運行PHP代碼時,首先確定緩存中是否已經存在與待運行PHP代碼對應的Opcode Array,且該Opcode Array可以由各Web應用共享,如果已經存在該Opcode Array,直接獲取並執行該Opcode Array,省去了編譯PHP代碼的步驟,提高了具有多個Web應用的Web伺服器在運行PHP代碼時的運行效率。
[0028]進一步的,執行與所述待運行PHP代碼對應的Opcode Array,具體包括:
[0029]在執行與所述待運行PHP代碼對應的Opcode Array的過程中,通過執行所述Opcode Array中的所述目錄獲取代碼,獲取所述待運行PHP代碼對應該Web應用的代碼目錄。
[0030]這樣,即可以通過該目錄獲取代碼,獲取該待運行PHP代碼對應的Web應用的代碼目錄,使得在執行該對應Opcode Array之後,得到與現有技術中該待運行PHP代碼運行後相同的結果。
[0031]本發明實施例還提供一種PHP代碼編譯裝置,包括:
[0032]代碼獲取單元,用於獲取待編譯PHP代碼;
[0033]編譯單元,用於對所述待編譯PHP代碼進行編譯,得到與所述待編譯PHP代碼對應的Opcode Array,所述Opcode Array中包括用於在所述Opcode Array被Web應用執行時,獲取所述待編譯PHP代碼對應該Web應用的代碼目錄的目錄獲取代碼;
[0034]緩存單元,用於緩存所述Opcode Array,用於Web伺服器上各Web應用運行所述待編譯PHP代碼。
[0035]採用本發明實施例提供的上述裝置,由於經過編譯得到的與待編譯PHP代碼對應的Opcode Array中,包括的是用於在該Opcode Array被Web應用執行時獲取該待編譯PHP代碼對應該Web應用的代碼目錄的目錄獲取代碼,而並非是該待編譯PHP代碼對應某一個Web應用的代碼目錄,因此針對不同Web應用,相同PHP代碼經過編譯生成的Opcode Array相同,所以該相同PHP代碼只需編譯一次,並將Opcode Array緩存,各Web應用即可以共享緩存的與該相同PHP代碼對應的Opcode Array,節省了 Web伺服器的處理資源和存儲資源,提高了 Web伺服器性能。
[0036]進一步的,所述緩存單元,具體用於將包含所述待編譯PHP代碼的代碼文件所在的節點信息作為鍵key,所述Opcode Array作為值value,其中,所述待編譯PHP代碼在同一Web伺服器上僅保存在一個代碼文件中;並對應緩存所述節點信息和所述Opcode Array0
[0037]這樣,可以使得當後續需要運行該待編譯PHP代碼時,可以通過包含所述待編譯PHP代碼的代碼文件所在的節點信息對應的key,確定與該key對應的value,並確定是否緩存有與其對應的Opcode Array。
[0038]進一步的,所述緩存單元,具體用於將所述待編譯PHP代碼的唯一代碼標識作為key,所述Opcode Array作為值value ;並對應緩存所述唯一代碼標識和所述OpcodeArray。
[0039]這樣,可以使得當後續需要運行該待編譯PHP代碼時,可以通過該待編譯PHP代碼的唯一代碼標識對應的key,確定與該key對應的value,並確定是否緩存有與其對應的Opcode Array。
[0040]本發明實施例還提供一種PHP代碼運行裝置,應用於Web伺服器上的各Web應用,包括:
[0041]緩存判定單元,用於確定緩存中是否已經存在與待運行PHP代碼對應的OpcodeArray ;[0042]編譯單元,用於當所述緩存判定單元確定緩存中未存在與所述待運行PHP代碼對應的Opcode Array時,對所述待運行PHP代碼進行編譯,得到與所述待運行PHP代碼對應的Opcode Array,所述Opcode Array中包括用於在所述Opcode Array被Web應用執行時獲取所述待運行PHP代碼對應該Web應用的代碼目錄的目錄獲取代碼;
[0043]緩存單元,用於緩存編譯得到的所述Opcode Array ;
[0044]執行單元,用於當所述緩存判定單元確定緩存中已經存在與所述待運行PHP代碼對應的Opcode Array時,執行與所述待運行PHP代碼對應的Opcode Array ;以及當所述緩存判定單元確定緩存中未存在與所述待運行PHP代碼對應的Opcode Array時,執行編譯得到的所述Opcode Array。
[0045]採用本發明實施例提供的上述裝置,當Web伺服器上的各Web應用在需要運行PHP代碼時,首先確定緩存中是否已經存在與待運行PHP代碼對應的Opcode Array,且該Opcode Array可以由各Web應用共享,如果已經存在該Opcode Array,直接獲取並執行該Opcode Array,省去了編譯PHP代碼的步驟,提高了具有多個Web應用的Web伺服器在運行PHP代碼時的運行效率。
[0046]進一步的,所述執行單元,具體用於在執行與所述待運行PHP代碼對應的OpcodeArray的過程中,通過執行所述Opcode Array中的所述目錄獲取代碼,獲取所述待運行PHP代碼對應該Web應用的代碼目錄。
[0047]這樣,即可以通過該目錄獲取代碼,獲取該待運行PHP代碼對應的Web應用的代碼目錄之後,使得在執行該對應Opcode Array之後,得到與現有技術中該待運行PHP代碼運行後相同的結果。
[0048]本申請的其它特徵和優點將在隨後的說明書中闡述,並且,部分地從說明書中變得顯而易見,或者通過實施本申請而了解。本申請的目的和其他優點可通過在所寫的說明書、權利要求書、以及附圖中所特別指出的結構來實現和獲得。
【專利附圖】

【附圖說明】
[0049]附圖用來提供對本發明的進一步理解,並且構成說明書的一部分,與本發明實施例一起用於解釋本發明,並不構成對本發明的限制。在附圖中:
[0050]圖1為本發明實施例提供的PHP代碼編譯方法的流程圖;
[0051]圖2為本發明實施例提供的PHP代碼運行方法的流程圖;
[0052]圖3為本發明實施例提供的PHP代碼編譯裝置的結構示意圖;
[0053]圖4為本發明實施例提供的PHP代碼運行裝置的結構示意圖。
【具體實施方式】
[0054]為了給出具有多個Web應用的Web伺服器在緩存PHP代碼對應的Opcode Array時節省處理資源和存儲資源的實現方案,本發明實施例提供了一種PHP代碼編譯方法及裝置;為了給出具有多個Web應用的Web伺服器在運行PHP代碼時提高運行效率的實現方案,本發明實施例還提供了一種PHP代碼運行方法及裝置,以下結合說明書附圖對本發明的優選實施例進行說明,應當理解,此處所描述的優選實施例僅用於說明和解釋本發明,並不用於限定本發明。並且在不衝突的情況下,本申請中的實施例及實施例中的特徵可以相互組人
口 O
[0055]本發明實施例提供一種PHP代碼編譯方法,如圖1所示,包括:
[0056]步驟101、獲取待編譯PHP代碼。
[0057]步驟102、對該待編譯PHP代碼進行編譯,得到與該待編譯PHP代碼對應的OpcodeArray,該Opcode Array中包括用於在該Opcode Array被Web應用執行時,獲取該待編譯PHP代碼對應該Web應用的代碼目錄的目錄獲取代碼。
[0058]步驟103、緩存該Opcode Array,用於Web伺服器上各Web應用運行該待編譯PHP代碼。
[0059]進一步的,在上述步驟103中,緩存編譯得到的該Opcode Array,當該待編譯PHP代碼在同一 Web伺服器上僅保存在一個代碼文件中時,可以將包含該待編譯PHP代碼的代碼文件所在的節點信息作為鍵key,與該待編譯PHP代碼對應的Opcode Array作為值value,對應緩存該節點信息和該Opcode Array。從而當後續需要運行該待編譯PHP代碼時,可以通過包含該待編譯PHP代碼的代碼文件所在的節點信息對應的key,確定與該key對應的value,並確定是否緩存有與其對應的Opcode Array。
[0060]上述步驟103中緩存編譯得到的該Opcode Array,也可以將該待編譯PHP代碼的唯一代碼標識作為key,與該待編譯PHP代碼對應的Opcode Array作為值value,對應緩存該唯一代碼標識和該Opcode Array0從而使得當後續需要運行該待編譯PHP代碼時,可以通過與該待編譯PHP代碼的唯一代碼標識對應的key,確定與該key對應的value,並確定是否緩存有與其對應的Opcode Array。
[0061]在實現本發明實施例提供的上述步驟102時,可以在現有PHP語言編譯工具的基礎上進行改進,修改PHP語言編譯工具中Zend引擎的與代碼目錄相關的關鍵字的PHP語法解析部分,使其在編譯過程中不再產生與代碼目錄相關的常量值,而生成對應Web應用的代碼目錄的目錄獲取代碼,使得在後續運行期間像執行函數一樣執行這段代碼來獲取代碼目錄。
[0062]本發明實施例提供的上述PHP代碼編譯方法中,由於經過編譯得到的與待編譯PHP代碼對應的Opcode Array中,包括的是用於在該Opcode Array被Web應用執行時獲取該待編譯PHP代碼對應該Web應用的代碼目錄的目錄獲取代碼,而並非是該待編譯PHP代碼對應某一個Web應用的代碼目錄,因此針對不同Web應用,相同PHP代碼經過編譯生成的Opcode Array相同,所以該相同PHP代碼只需編譯一次,並將Opcode Array緩存,各Web應用即可以共享緩存的與該相同PHP代碼對應的Opcode Array,節省了 Web伺服器的處理資源和存儲資源,提高了 Web伺服器性能。
[0063]相應的,基於上述PHP代碼編譯方法,本發明實施例還提供一種PHP代碼運行方法,應用於Web伺服器上的各Web應用,如圖2所示,包括:
[0064]步驟201、在需要運行PHP代碼時,確定緩存中是否已經存在與待運行PHP代碼對應的Opcode Array,如果是,執行步驟202,如果否,執行步驟步驟203。
[0065]步驟202、當緩存中已經存在與該待運行PHP代碼對應的Opcode Array時,執行與該待運行PHP代碼對應的Opcode Array,流程結束。
[0066]步驟203、當緩存中未存在與該待運行PHP代碼對應的Opcode Array時,對該待運行PHP代碼進行編譯,得到與該待運行PHP代碼對應的Opcode Array,該Opcode Array中包括用於在該Opcode Array被Web應用執行時獲取該待運行PHP代碼對應該Web應用的代碼目錄的目錄獲取代碼。
[0067]步驟204、緩存並執行編譯得到的該Opcode Array?
[0068]本發明實施例中,對於Web伺服器上的各Web應用中相同的PHP代碼文件,可以在該Web伺服器上只存儲一份,在各Web應用代碼目錄下保存一個連結,指向所存儲的PHP代碼文件,使得在運行PHP代碼的過程中,當需要對PHP代碼進行編譯時,可以通過該連結獲取該PHP代碼。
[0069]本發明實施例提供的上述PHP代碼運行方法中,上述步驟202中已經緩存的與該待運行PHP代碼對應的Opcode Array,可以是當前將要運行該待運行PHP代碼的Web應用之前編譯得到的,也可以其它Web應用之前在運行該待運行PHP代碼時編譯得到的。
[0070]在上述步驟202和步驟204中,在執行與該待運行PHP代碼對應的Opcode Array的過程中,由於該Opcode Array中包括了用於在該Opcode Array被Web應用執行時,獲取該待運行PHP代碼對應該Web應用的代碼目錄的目錄獲取代碼,所以可以通過執行該Opcode Array中的該目錄獲取代碼,獲取到該待運行PHP代碼對應該Web應用的代碼目錄,使得在執行該對應Opcode Array之後,得到與現有技術中該待運行PHP代碼運行後相同的結果。
[0071]上述步驟203中對該待運行PHP代碼進行編譯,以及上述步驟204中存儲編譯得到的與該待運行PHP代碼對應的Opcode Array,可以採用與上述PHP代碼編譯方法相同的方法進行編譯,在此不再進行詳細描述。
[0072]相應的,當該待編譯PHP代碼在同一 Web伺服器上僅保存在一個代碼文件中時,且存儲與該待運行PHP代碼對應的Opcode Array,將包含該待編譯PHP代碼的代碼文件所在的節點信息作為鍵key,與該待編譯PHP代碼對應的Opcode Array作為值value,對應緩存該節點信息和該Opcode Array,則在上述步驟201中,確定緩存中是否已經存在與待運行PHP代碼對應的Opcode Array時,可以根據包含該待運行PHP代碼的代碼文件所在的節點信息,確定緩存中是否已經存在對應該節點信息的Opcode Array,如果已經存在,表示緩存中已經存在與待運行PHP代碼對應的Opcode Array,如果不存在,表示緩存中未存在與待運行PHP代碼對應的Opcode Array。
[0073]相應的,當存儲與該待運行PHP代碼對應的Opcode Array,是將該運行PHP代碼的唯一代碼標識作為key,與該待編譯PHP代碼對應的Opcode Array作為值value,對應緩存該唯一代碼標識和該Opcode Array時,則在上述步驟201中,確定緩存中是否已經存在與待運行PHP代碼對應的Opcode Array時,可以根據待運行PHP代碼的唯一代碼標識,確定緩存裡是否已經存在對應該唯一代碼標識的Opcode Array,如果已經存在,表示緩存中已經存在與待運行PHP代碼對應的Opcode Array,如果不存在,表示緩存中未存在與待運行PHP代碼對應的Opcode Array。
[0074]採用本發明實施例提供的上述PHP代碼運行方法,當Web伺服器上的各Web應用在需要運行PHP代碼時,首先確定緩存中是否已經存在與待運行PHP代碼對應的OpcodeArray,且該Opcode Array可以由各Web應用共享,如果已經存在該Opcode Array,直接獲取並執行該Opcode Array,省去了編譯PHP代碼的步驟,提高了具有多個Web應用的Web伺服器在運行PHP代碼時的運行效率。[0075]基於同一發明構思,根據本發明上述實施例提供的PHP代碼編譯方法,相應地,本發明另一實施例還提供了 PHP代碼編譯裝置,裝置結構示意圖如圖3所示,具體包括:
[0076]代碼獲取單元301,用於獲取待編譯PHP代碼;
[0077]編譯單元302,用於對該待編譯PHP代碼進行編譯,得到與該待編譯PHP代碼對應的Opcode Array,該Opcode Array中包括用於在該Opcode Array被Web應用執行時,獲取該待編譯PHP代碼對應該Web應用的代碼目錄的目錄獲取代碼;
[0078]緩存單元303,用於緩存該Opcode Array,用於Web伺服器上各Web應用運行該待編譯PHP代碼。
[0079]進一步的,緩存單元303,具體用於將包含該待編譯PHP代碼的代碼文件所在的節點信息作為鍵key,該Opcode Array作為值value,其中,該待編譯PHP代碼在同一 Web伺服器上僅保存在一個代碼文件中;並對應緩存所述節點信息和該Opcode Array。
[0080]進一步的,緩存單元303,具體用於將該待編譯PHP代碼的唯一代碼標識作為key,該Opcode Array作為值value ;並對應緩存該唯一代碼標識和該Opcode Array。
[0081]上述各單元的功能可對應於圖1所示流程中的相應處理步驟,在此不再贅述。
[0082]基於同一發明構思,根據本發明上述實施例提供的PHP代碼運行方法,相應地,本發明另一實施例還提供了 PHP代碼運行裝置,應用於Web伺服器上的各Web應用,裝置結構示意圖如圖4所示,具體包括:
[0083]緩存判定單元401,用於確定緩存中是否已經存在與待運行PHP代碼對應的Opcode Array ;
[0084]編譯單元402,用於當該緩存判定單元確定緩存中未存在與該待運行PHP代碼對應的Opcode Array時,對該待運行PHP代碼進行編譯,得到與該待運行PHP代碼對應的Opcode Array,該Opcode Array中包括用於在該Opcode Array被Web應用執行時獲取該待運行PHP代碼對應該Web應用的代碼目錄的目錄獲取代碼;
[0085]緩存單元403,用於緩存編譯得到的該Opcode Array,
[0086]執行單元404,用於當該緩存判定單元確定緩存中已經存在與該待運行PHP代碼對應的Opcode Array時,執行與該待運行PHP代碼對應的Opcode Array ;以及當該緩存判定單元確定緩存中未存在與該待運行PHP代碼對應的Opcode Array時,執行編譯得到的該Opcode Array。
[0087]進一步的,執行單元404,具體用於在執行與該待運行PHP代碼對應的OpcodeArray的過程中,通過執行該Opcode Array中的該目錄獲取代碼,獲取該待運行PHP代碼對應該Web應用的代碼目錄。
[0088]上述各單元的功能可對應於圖2所示流程中的相應處理步驟,在此不再贅述。
[0089]綜上所述,本發明實施例提供的方案,在獲取待編譯PHP代碼後,對該待編譯PHP代碼進行編譯,得到與該待編譯PHP代碼對應的Opcode Array,該Opcode Array中包括用於在該Opcode Array被Web應用執行時獲取上述待編譯PHP代碼對應該Web應用的代碼目錄的目錄獲取代碼;並緩存該Opcode Array,用於Web伺服器上各Web應用運行上述待編譯PHP代碼。採用本發明實施例提供的方案,節省了 Web伺服器的處理資源和存儲資源,提高了 Web伺服器性能。
[0090]相應的,在Web伺服器上的各Web應用需要運行PHP代碼時,首先確定緩存中是否已經存在與待運行PHP代碼對應的Opcode Array ;當緩存中已經存在與該待運行PHP代碼對應的Opcode Array時,執行與該待運行PHP代碼對應的Opcode Array ;當緩存中未存在與該待運行PHP代碼對應的Opcode Array時,對該待運行PHP代碼進行編譯,得到與該待運行PHP代碼對應的Opcode Array,該Opcode Array中包括用於在該Opcode Array被Web應用執行時獲取上述待運行PHP代碼對應該Web應用的代碼目錄的目錄獲取代碼;緩存並執行編譯得到的該Opcode Array0採用本發明實施例提供的方案,提高了具有多個Web應用的Web伺服器在運行PHP代碼時的運行效率。
[0091]本申請的實施例所提供的PHP代碼編譯裝置及PHP代碼運行裝置可通過電腦程式實現。本領域技術人員應該能夠理解,上述的模塊劃分方式僅是眾多模塊劃分方式中的一種,如果劃分為其他模塊或不劃分模塊,只要PHP代碼編譯裝置及PHP代碼運行裝置具有上述功能,都應該在本申請的保護範圍之內。
[0092]本申請是參照根據本申請實施例的方法、設備(系統)、和電腦程式產品的流程圖和/或方框圖來描述的。應理解可由電腦程式指令實現流程圖和/或方框圖中的每一流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結合。可提供這些電腦程式指令到通用計算機、專用計算機、嵌入式處理機或其他可編程數據處理設備的處理器以產生一個機器,使得通過計算機或其他可編程數據處理設備的處理器執行的指令產生用於實現在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的裝置。
[0093]這些電腦程式指令也可存儲在能引導計算機或其他可編程數據處理設備以特定方式工作的計算機可讀存儲器中,使得存儲在該計算機可讀存儲器中的指令產生包括指令裝置的製造品,該指令裝置實現在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能。
[0094]這些電腦程式指令也可裝載到計算機或其他可編程數據處理設備上,使得在計算機或其他可編程設備上執行一系列操作步驟以產生計算機實現的處理,從而在計算機或其他可編程設備上執行的指令提供用於實現在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的步驟。
[0095]顯然,本領域的技術人員可以對本發明進行各種改動和變型而不脫離本發明的精神和範圍。這樣,倘若本發明的這些修改和變型屬於本發明權利要求及其等同技術的範圍之內,則本發明也意圖包含這些改動和變型在內。
【權利要求】
1.一種超文本預處理語言PHP代碼編譯方法,其特徵在於,包括: 獲取待編譯PHP代碼; 對所述待編譯PHP代碼進行編譯,得到與所述待編譯PHP代碼對應的操作碼陣列Opcode Array,所述Opcode Array中包括用於在所述Opcode Array被Web應用執行時,獲取所述待編譯PHP代碼對應該網際網路Web應用的代碼目錄的目錄獲取代碼; 緩存所述Opcode Array,用於Web伺服器上各Web應用運行所述待編譯PHP代碼。
2.如權利要求1所述的方法,其特徵在於,緩存所述OpcodeArray,具體包括: 將包含所述待編譯PHP代碼的代碼文件所在的節點信息作為鍵key,所述OpcodeArray作為值value,其中,所述待編譯PHP代碼在同一 Web伺服器上僅保存在一個代碼文件中; 對應緩存所述節點信息和所述Opcode Array0
3.如權利要求1所述的方法,其特徵在於,緩存所述OpcodeArray,具體包括: 將所述待編譯PHP代碼的唯一代碼標識作為key,所述Opcode Array作為值value ; 對應緩存所述唯一代碼標識和所述Opcode Array ?
4.一種超文本預處理語言PHP代碼運行方法,其特徵在於,包括: 網際網路Web伺服器上的 各Web應用在需要運行PHP代碼時,確定緩存中是否已經存在與待運行PHP代碼對應的操作碼陣列Opcode Array ; 當緩存中未存在與所述待運行PHP代碼對應的Opcode Array時,對所述待運行PHP代碼進行編譯,得到與所述待運行PHP代碼對應的Opcode Array,所述Opcode Array中包括用於在所述Opcode Array被Web應用執行時,獲取所述待運行PHP代碼對應該Web應用的代碼目錄的目錄獲取代碼;以及,緩存並執行編譯得到的所述Opcode Array ; 當緩存中已經存在與所述待運行PHP代碼對應的Opcode Array時,執行與所述待運行PHP代碼對應的Opcode Array。
5.如權利要求4所述的方法,其特徵在於,執行與所述待運行PHP代碼對應的OpcodeArray,具體包括: 在執行與所述待運行PHP代碼對應的Opcode Array的過程中,通過執行所述OpcodeArray中的所述目錄獲取代碼,獲取所述待運行PHP代碼對應該Web應用的代碼目錄。
6.一種超文本預處理語言PHP代碼編譯裝置,其特徵在於,包括: 代碼獲取單元,用於獲取待編譯PHP代碼; 編譯單元,用於對所述待編譯PHP代碼進行編譯,得到與所述待編譯PHP代碼對應的操作碼陣列Opcode Array,所述Opcode Array中包括用於在所述Opcode Array被Web應用執行時,獲取所述待編譯PHP代碼對應該網際網路Web應用的代碼目錄的目錄獲取代碼;緩存單元,用於緩存所述Opcode Array,用於Web伺服器上各Web應用運行所述待編譯PHP代碼。
7.如權利要求6所述的裝置,其特徵在於,所述緩存單元,具體用於將包含所述待編譯PHP代碼的代碼文件所在的節點信息作為鍵key,所述Opcode Array作為值value,其中,所述待編譯PHP代碼在同一 Web伺服器上僅保存在一個代碼文件中;並對應緩存所述節點信息和所述Opcode Array。
8.如權利要求6所述的裝置,其特徵在於,所述緩存單元,具體用於將所述待編譯PHP代碼的唯一代碼標識作為key,所述Opcode Array作為值value ;並對應緩存所述唯一代碼標識和所述Opcode Array ?
9.一種超文本預處理語言PHP代碼運行裝置,應用於網際網路Web伺服器上的各Web應用,其特徵在於,包括: 緩存判定單元,用於確定緩存中是否已經存在與待運行PHP代碼對應的OpcodeArray ; 編譯單元,用於當所述緩存判定單元確定緩存中未存在與所述待運行PHP代碼對應的操作碼陣列Opcode Array時,對所述待運行PHP代碼進行編譯,得到與所述待運行PHP代碼對應的Opcode Array,所述Opcode Array中包括用於在所述Opcode Array被Web應用執行時獲取所述待運行PHP代碼對應該Web應用的代碼目錄的目錄獲取代碼; 緩存單元,用於緩存編譯得到的所述Opcode Array ; 執行單元,用於當所述緩存判定單元確定緩存中已經存在與所述待運行PHP代碼對應的Opcode Array時,執行與所述待運行PHP代碼對應的Opcode Array ;以及當所述緩存判定單元確定緩存中未存在與所述待運行PHP代碼對應的Opcode Array時,執行編譯得到的所述 Opcode Array。
10.如權利要求9所述的裝置,其特徵在於,所述執行單元,具體用於在執行與所述待運行PHP代碼對應的Opcode Array的過程中,通過執行所述Opcode Array中的所述目錄獲取代碼,獲取所述待運行PHP代碼對應該Web應用的代碼目錄 。
【文檔編號】G06F9/45GK103488517SQ201310409987
【公開日】2014年1月1日 申請日期:2013年9月10日 優先權日:2013年9月10日
【發明者】陳磊 申請人:新浪網技術(中國)有限公司

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀