日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪(fǎng)問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

调优您的 LAMP 应用程序的 5 种简单方法

發(fā)布時(shí)間:2024/10/8 编程问答 92 豆豆
生活随笔 收集整理的這篇文章主要介紹了 调优您的 LAMP 应用程序的 5 种简单方法 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
John?Mertic,?軟件工程師,?SugarCRM [url=]簡(jiǎn)介[/url] Wikipedia、Facebook?和?Yahoo!?等主要?web?屬性使用?LAMP?架構(gòu)來(lái)為每天數(shù)百萬(wàn)的請(qǐng)求提供服務(wù),而?Wordpress、Joomla、Drupal?和?SugarCRM?等?web?應(yīng)用程序軟件使用其架構(gòu)來(lái)讓組織輕松部署基于?web?的應(yīng)用程序。 該架構(gòu)的優(yōu)勢(shì)在于其簡(jiǎn)單性。而?.NET?這樣的堆棧和?Java™?技術(shù)可能使用大量硬件、昂貴的軟件棧和復(fù)雜的性能調(diào)優(yōu),LAMP?堆??梢赃\(yùn)行于商品硬件之上,使用開(kāi)源軟件棧。由于軟件棧是一個(gè)松散的組件集,而非一個(gè)整體堆棧,性能調(diào)優(yōu)是一大挑戰(zhàn),因?yàn)樾枰治龊驼{(diào)優(yōu)每個(gè)組件。 然而,這有幾個(gè)個(gè)簡(jiǎn)單性能任務(wù)會(huì)對(duì)任何規(guī)模的網(wǎng)站的性能產(chǎn)生巨大的影響。在本文中,我們將探討旨在優(yōu)化?LAMP?應(yīng)用程序性能的?5?個(gè)這樣的任務(wù)。這些項(xiàng)目應(yīng)當(dāng)很少需要對(duì)您的應(yīng)用程序進(jìn)行架構(gòu)更改,使其成為最大化您的?web?應(yīng)用程序所需的響應(yīng)能力和硬件需求的安全、便捷的選擇。回頁(yè)首 [url=]使用操作碼緩存[/url] 提高任何?PHP?應(yīng)用程序(當(dāng)然是?LAMP?中的?“P”)的性能的最簡(jiǎn)單方式是利用一個(gè)操作碼緩存。對(duì)于我使用的任何網(wǎng)站,它是我確保存在的一項(xiàng)內(nèi)容,因?yàn)樾阅苡绊懞艽?#xff08;很多時(shí)候有了操作碼緩存,響應(yīng)時(shí)間可減少一半)。但是對(duì)?PHP?不熟悉的大部分人的一個(gè)很大的疑問(wèn)是,為何改進(jìn)會(huì)如此之大。答案在于?PHP?如何處理?web?請(qǐng)求。圖?1?概覽了?PHP?請(qǐng)求的流程。 [url=]圖?1.?PHP?請(qǐng)求[/url] ? 由于?PHP?是一種解釋語(yǔ)言,而非?C?或?Java?等編譯語(yǔ)言,對(duì)每個(gè)請(qǐng)求執(zhí)行了?“解析-編譯-執(zhí)行”?的整個(gè)步驟。您可以看到為何這會(huì)耗時(shí)、耗資源,特別是當(dāng)腳本在請(qǐng)求之間很少變化時(shí)。解析和編譯腳本之后,腳本作為一系列操作碼處于機(jī)器可解析狀態(tài)。這是操作碼緩存發(fā)揮效用的地方。它作為一系列操作碼緩存這些編譯腳本,以避免為解析和編譯每個(gè)請(qǐng)求步驟。您將在圖?2?中看到這樣的工作流是如何運(yùn)作的。 [url=]圖?2.?PHP?請(qǐng)求使用操作碼緩存[/url] ? 因此當(dāng)?PHP?腳本的緩存操作碼存在時(shí),我們可以跳過(guò)?PHP?請(qǐng)求流程的解析和編譯步驟,直接執(zhí)行緩存操作碼并輸出結(jié)果。檢查算法負(fù)責(zé)處理您可能對(duì)腳本文件進(jìn)行了更改的情況,因此在已變更腳本的第一個(gè)請(qǐng)求后,會(huì)為隨后的請(qǐng)求自動(dòng)重新編譯和緩存操作碼,替換緩存的腳本。 操作碼緩存對(duì)于?PHP?流行已久,其中早期的一些要追溯到?PHP?V4?的全盛期。目前有一些流行選項(xiàng)正在積極開(kāi)發(fā)和使用中:
  • 替代?PHP?緩存(APC)可能是?PHP?最流行的操作碼緩存(參見(jiàn)?參考資料)。它由若干核心?PHP?開(kāi)發(fā)人員所開(kāi)發(fā),做出了很大貢獻(xiàn),Facebook?和?Yahoo!?的工程師賦予了其速度和穩(wěn)定性。它還支持用于處理?PHP?請(qǐng)求的若干其他速度改進(jìn),包括一個(gè)用戶(hù)緩存組件,這將在本文后面探討。
  • Wincache?是主要由?Microsoft®?的?Internet?Information?Services?(IIS)?團(tuán)隊(duì)積極開(kāi)發(fā)的一個(gè)操作碼緩存,僅供在使用?IIS?web?服務(wù)器的?Windows®?上使用(參見(jiàn)?參考資料)。開(kāi)發(fā)它的主要?jiǎng)恿υ谟谑?PHP?成為?Windows-IIS-PHP?堆棧上的一流開(kāi)發(fā)平臺(tái),因?yàn)閾?jù)知?APC?在該堆棧上運(yùn)作的不是很好。它在功能上非常類(lèi)似于?APC,且支持一個(gè)用戶(hù)緩存組件,以及一個(gè)內(nèi)置會(huì)話(huà)處理程序,以將?Wincache?作為一個(gè)會(huì)話(huà)處理程序直接加以利用。
  • eAccelerator?是原始?PHP?緩存之一?Turck?MMCache?操作碼緩存(參見(jiàn)?參考資料)的一個(gè)派生。不同于?APC?和?Wincache,它僅是一個(gè)操作碼緩存和優(yōu)化器,因此它不包含用戶(hù)緩存組件。它在?UNIX®?和?Windows?堆棧上完全兼容,且對(duì)于不打算利用?APC?或?Wincache?提供的其他功能的站點(diǎn)很流行。如果您要使用?memcache?這樣的解決方案來(lái)為多?web?服務(wù)器環(huán)境提供一個(gè)單獨(dú)的用戶(hù)緩存服務(wù)器,那么這就是常見(jiàn)情況。
毫無(wú)疑問(wèn),一個(gè)操作碼緩存是通過(guò)在每次請(qǐng)求后消除解析和編譯腳本的需要來(lái)加速?PHP?的第一步。完成第一步之后,您應(yīng)當(dāng)看到響應(yīng)時(shí)間和服務(wù)器負(fù)載方面的改進(jìn)。但是優(yōu)化?PHP?可以做的不止這些,我們接下來(lái)將加以討論。 回頁(yè)首 [url=]優(yōu)化您的?PHP?設(shè)置[/url] 雖然實(shí)現(xiàn)操作碼緩存是性能改進(jìn)的一大創(chuàng)舉,不過(guò)也有大量其他優(yōu)化選項(xiàng)可供您基于?php.ini?文件中的設(shè)置優(yōu)化您的?PHP?設(shè)置。這些設(shè)置更適合于生產(chǎn)實(shí)例;在開(kāi)發(fā)或測(cè)試實(shí)例上,您可能不希望做這些變更,因?yàn)樗鼤?huì)使得應(yīng)用程序問(wèn)題的調(diào)試變得更難。 讓我們看一下對(duì)于性能提升很重要的一些項(xiàng)目。 [url=]應(yīng)當(dāng)禁用的選項(xiàng)[/url] 有若干?php.ini?設(shè)置應(yīng)當(dāng)予以禁用,因?yàn)樗鼈兂S米飨蚝蠹嫒菪?#xff1a;
  • register_globals?—?在?PHP?V4.2?之前該功能常常是默認(rèn)值,其中傳入的請(qǐng)求變量被自動(dòng)賦給普通?PHP?變量。這樣做除了引起重大安全問(wèn)題之外(使未過(guò)濾的傳入請(qǐng)求數(shù)據(jù)與普通?PHP?變量?jī)?nèi)容相混),對(duì)每一個(gè)請(qǐng)求這樣做還會(huì)產(chǎn)生開(kāi)銷(xiāo)。因此禁用這一設(shè)置使您的應(yīng)用程序更安全且能提高性能。
  • magic_quotes_*?—?這是?PHP?V4?的另一遺留項(xiàng),其中傳入的數(shù)據(jù)會(huì)自動(dòng)避開(kāi)有風(fēng)險(xiǎn)的表單數(shù)據(jù)。它旨在作為一個(gè)安全特性,在將傳入的數(shù)據(jù)發(fā)送到數(shù)據(jù)庫(kù)之前對(duì)其進(jìn)行整理,但不是很有效,因?yàn)樗荒軒椭脩?hù)預(yù)防常見(jiàn)的?SQL?注入攻擊。由于大部分?jǐn)?shù)據(jù)庫(kù)層支持能更好地處理該風(fēng)險(xiǎn)的準(zhǔn)備語(yǔ)句,禁用該設(shè)置會(huì)再次消除這個(gè)煩人的性能問(wèn)題。
  • always_populate_raw_post_data?—?這僅當(dāng)您出于某些原因需要查看傳入的未過(guò)濾?POST?數(shù)據(jù)的整個(gè)負(fù)載時(shí)才需要。否則,它僅在內(nèi)存中存儲(chǔ)?POST?數(shù)據(jù)的一個(gè)副本,而這沒(méi)有必要。
然而,在遺留代碼上禁用這些選項(xiàng)會(huì)有風(fēng)險(xiǎn),因?yàn)樗鼈兛赡苋Q于其設(shè)置來(lái)實(shí)現(xiàn)正確執(zhí)行。不應(yīng)當(dāng)基于被設(shè)置的這些選項(xiàng)來(lái)開(kāi)發(fā)任何新代碼,而且可能的話(huà),您應(yīng)當(dāng)尋求方法來(lái)重構(gòu)您的現(xiàn)有代碼,避免使用它們。 [url=]應(yīng)當(dāng)禁用或調(diào)整設(shè)置的選項(xiàng)[/url] 您可以啟用?php.ini?文件的一些優(yōu)秀性能選項(xiàng),來(lái)提升您的腳本速度: ?
  • output_buffering?—?您應(yīng)當(dāng)確保啟用該選項(xiàng),因?yàn)樗鼤?huì)以塊為單位將輸出刷回到瀏覽器,而非以每個(gè)echo?或?print?語(yǔ)句為單位,而后者會(huì)大大減緩您的請(qǐng)求響應(yīng)時(shí)間。
  • variables_order?—?這個(gè)指令控制傳入請(qǐng)求的?EGPCS(Environment、Get、Post、Cookie?和?Server)變量解析順序。如果您沒(méi)有使用某種超全局變量(比如環(huán)境變量),您可以安全地刪除它們來(lái)獲得一點(diǎn)加速,從而避免在每一個(gè)請(qǐng)求上解析它們。
  • date.timezone?—?這是在?PHP?V5.1?中添加的一個(gè)指令,用于設(shè)置默認(rèn)時(shí)區(qū),然后用于后面將要介紹的DateTime?函數(shù)。如果您不在?php.ini?文件中設(shè)置該選項(xiàng),PHP?會(huì)執(zhí)行大量系統(tǒng)請(qǐng)求來(lái)弄清它是什么,且在?PHP?V5.3?中,對(duì)每一個(gè)請(qǐng)求會(huì)發(fā)出一個(gè)警告。
就以應(yīng)當(dāng)在您的生產(chǎn)實(shí)例上配置的設(shè)置而言,這些被看作是?“唾手可得”。就?PHP?而言,還有一件事需要考慮。這就是您的應(yīng)用程序中?require()?和?include()(以及其同級(jí)?require_once()?和?include_once())的使用。這些函數(shù)優(yōu)化您的?PHP?配置和代碼,以防止對(duì)每個(gè)請(qǐng)求進(jìn)行不必要的文件狀態(tài)檢查,從而減少響應(yīng)時(shí)間。 回頁(yè)首 [url=]管理您的?require()?和?include()[/url] 從性能來(lái)看,文件狀態(tài)調(diào)用(即為檢查一個(gè)文件是否存在而對(duì)底層文件系統(tǒng)進(jìn)行的調(diào)用)相當(dāng)昂貴。文件狀態(tài)的最大元兇之一以?require()?和?include()?語(yǔ)句的形式出現(xiàn),這兩個(gè)語(yǔ)句用于將代碼帶到腳本中。require_once()和?include_once()?的同級(jí)調(diào)用更成問(wèn)題,因?yàn)樗鼈儾粌H需要驗(yàn)證文件是否存在,而且它之前沒(méi)有包含在內(nèi)。 那么解決這個(gè)問(wèn)題的最好方式是什么?您可以做一些事來(lái)加快解決。
  • 為所有?require()?和?include()?調(diào)用使用絕對(duì)路徑。這將使?PHP?更清楚您希望包含的確切文件,因此無(wú)需為您的文件檢查整個(gè)?include_path。
  • 保持?include_path?中的條目數(shù)較低。這在很難為每個(gè)?require()?和?include()?調(diào)用提供絕對(duì)路徑的情況(通常在大型遺留應(yīng)用程序中會(huì)出現(xiàn)這種情況)下很有用,方法就是不檢查您包含的文件不在的位置。
APC?和?Wincache?還有用于緩存?PHP?進(jìn)行的文件狀態(tài)檢查結(jié)果的機(jī)制,因此無(wú)需進(jìn)行反復(fù)的文件系統(tǒng)檢查。當(dāng)您將?include?文件名保留為靜態(tài)而非變量驅(qū)動(dòng)的時(shí),它們最有效,因此盡可能?chē)L試這樣做很有用。 回頁(yè)首 [url=]優(yōu)化您的數(shù)據(jù)庫(kù)[/url] 數(shù)據(jù)庫(kù)優(yōu)化很快會(huì)成為一個(gè)前沿話(huà)題,我?guī)缀鯖](méi)有空間在這里完全公正地做這個(gè)話(huà)題。但是如果您在尋求優(yōu)化您的數(shù)據(jù)庫(kù)的速度,首先應(yīng)當(dāng)采取一些步驟,這應(yīng)當(dāng)對(duì)常見(jiàn)問(wèn)題有所幫助。 [url=]將數(shù)據(jù)庫(kù)放在自己的機(jī)器上[/url] 數(shù)據(jù)庫(kù)查詢(xún)自身可以變得相當(dāng)激烈,通常在對(duì)大小合理的數(shù)據(jù)集執(zhí)行簡(jiǎn)單的?SELECT?語(yǔ)句時(shí)限定在?100%?的?CPU。如果您的?web?服務(wù)器和數(shù)據(jù)庫(kù)服務(wù)器都在竟用單一機(jī)器上的?CPU?時(shí)間,這無(wú)疑將減慢您的請(qǐng)求速度。因此我想第一步最好是將?web?服務(wù)器和數(shù)據(jù)庫(kù)服務(wù)器放在單獨(dú)的機(jī)器上,確保您的數(shù)據(jù)庫(kù)服務(wù)器是兩者中更強(qiáng)健的(數(shù)據(jù)庫(kù)服務(wù)器喜歡大量?jī)?nèi)存和多個(gè)?CPU)。 [url=]合理設(shè)計(jì)和編制表索引[/url] 數(shù)據(jù)庫(kù)性能的最大問(wèn)題可能源自于不良數(shù)據(jù)庫(kù)設(shè)計(jì)和缺失索引。SELECT?語(yǔ)句通常是運(yùn)行在典型?web?應(yīng)用程序中的最常見(jiàn)的查詢(xún)類(lèi)型。它們也是在數(shù)據(jù)庫(kù)服務(wù)器上運(yùn)行的最耗時(shí)的查詢(xún)。此外,這些類(lèi)型的?SQL?語(yǔ)句對(duì)適當(dāng)?shù)乃饕蛿?shù)據(jù)庫(kù)設(shè)計(jì)最敏感,因此查看以下指示,獲取實(shí)現(xiàn)最優(yōu)性能的技巧。
  • 確保每個(gè)表都有一個(gè)主鍵。這為表提供一個(gè)默認(rèn)順序和快速方式來(lái)聯(lián)接其他表。
  • 確保一個(gè)表中的任何外鍵(即鏈接記錄到另一個(gè)表中的記錄的鍵)的索引得到合理編制。許多數(shù)據(jù)庫(kù)會(huì)自動(dòng)對(duì)這些鍵施加約束,以便值真正匹配另一個(gè)表中的一條記錄,這有助于擺脫這一困難。
  • 試圖限制一個(gè)表中的列數(shù)。一個(gè)表中有太多列比僅有一些列時(shí)進(jìn)行查詢(xún)所需的掃描時(shí)間要長(zhǎng)。此外,如果您有不常用的含多個(gè)列的一個(gè)表,您也在通過(guò)?NULL?值字段浪費(fèi)磁盤(pán)空間。文本或?blob?等可變大小字段也是如此,其中表大小的增長(zhǎng)可以遠(yuǎn)超過(guò)需求。在這種情況下,您應(yīng)當(dāng)考慮將其他欄分成不同的表,在記錄的主鍵上將其聯(lián)合起來(lái)。
[url=]分析在服務(wù)器上運(yùn)行的查詢(xún)[/url] 改進(jìn)數(shù)據(jù)庫(kù)性能的最佳方法是分析在您的數(shù)據(jù)庫(kù)服務(wù)器上運(yùn)行什么查詢(xún),且運(yùn)行它們需要多長(zhǎng)時(shí)間。幾乎每個(gè)數(shù)據(jù)庫(kù)都有具有這種功能的工具。對(duì)于?MySQL,您可以利用慢查詢(xún)?nèi)罩緛?lái)查找有問(wèn)題的查詢(xún)。要使用它,在?MySQL?配置文件中將?slow_query_log?設(shè)置為?1,然后將?log_output?設(shè)置為?FILE,將它們記錄到文件?hostname-slow.log?中。您可以設(shè)置?long_query_time?閾值,確定查詢(xún)必須運(yùn)行多少秒才被看作是?“慢查詢(xún)”。我想建議將該閾值首先設(shè)置為?5?秒,隨著時(shí)間的推移將其縮減為?1?秒,具體取決于您的數(shù)據(jù)集。如果您探究該文件,您會(huì)看到類(lèi)似于清單?1?的詳細(xì)查詢(xún)。 [url=]清單?1.?MySQL?慢查詢(xún)?nèi)罩?/strong>[/url] /usr/local/mysql/bin/mysqld,?Version:?5.1.49-log,?started?with:?Tcp?port:?3306?Unix?socket:?/tmp/mysql.sock?Time?Id?Command?Argument?#?Time:?030207?15:03:33?#?User@Host:?user[user]?@?localhost.localdomain?[127.0.0.1]?#?Query_time:?13?Lock_time:?0?Rows_sent:?117?Rows_examined:?234?use?sugarcrm;?select?*?from?accounts?inner?join?leads?on?accounts.id?=?leads.account_id; 我們想要考慮的關(guān)鍵對(duì)象是?Query_time,顯示查詢(xún)需要的時(shí)間。另一項(xiàng)要考慮的是?Rows_sent?和?Rows_examined的數(shù)量,因?yàn)檫@些可指這樣的情況:其中如果一個(gè)查詢(xún)察看太多行或返回太多行,就會(huì)被錯(cuò)誤地書(shū)寫(xiě)。您可以更深入地鉆研如何寫(xiě)查詢(xún),即在查詢(xún)開(kāi)始處加上?EXPLAIN,它會(huì)返回查詢(xún)計(jì)劃,而非結(jié)果集,如清單?2?所示。 [url=]清單?2.?MySQL?EXPLAIN?結(jié)果[/url] mysql>?explain?select?*?from?accounts?inner?join?leads?on?accounts.id?=?leads.account_id;?+----+-------------+----------+--------+--------------------------+---------+---?|?id?|?select_type?|?table?|?type?|?possible_keys?|?key?|?key_len?|?ref?|?rows?|?Extra?|?+----+-------------+----------+--------+--------------------------+---------+--------?|?1?|?SIMPLE?|?leads?|?ALL?|?idx_leads_acct_del?|?NULL?|?NULL?|?NULL?|?200?|?|?|?1?|?SIMPLE?|?accounts?|?eq_ref?|?PRIMARY,idx_accnt_id_del?|?PRIMARY?|?108?|?sugarcrm.leads.account_id?|?1?|?|?+----+-------------+----------+--------+--------------------------+---------+---------?2?rows?in?set?(0.00?sec) MySQL?手冊(cè)更深入探究?EXPLAIN?輸出的主題(參見(jiàn)?參考資料),但是我考慮的一項(xiàng)重要內(nèi)容是?‘type’?列為?‘ALL’?的地方,因?yàn)檫@需要?MySQL?做一個(gè)全表掃描,且不需要鍵來(lái)執(zhí)行查詢(xún)。這些幫助您在添加索引時(shí)會(huì)大幅提高查詢(xún)速度。回頁(yè)首 [url=]有效緩存數(shù)據(jù)[/url] 正如我們?cè)谏弦还?jié)看到的,數(shù)據(jù)庫(kù)往往容易成為您?web?應(yīng)用程序性能的最大痛點(diǎn)。但是如果您要查詢(xún)的數(shù)據(jù)不經(jīng)常改變?cè)趺崔k?在這種情況下,一個(gè)好的選擇就是在本地存儲(chǔ)這些結(jié)果,而非針對(duì)每個(gè)請(qǐng)求調(diào)用查詢(xún)。 我們之前探究的兩個(gè)操作碼緩存?APC?和?Wincache?具有實(shí)現(xiàn)上述操作的工具,其中您可以將?PHP?數(shù)據(jù)直接存儲(chǔ)到一個(gè)共享內(nèi)存段中,便于快速查詢(xún)。清單?3?提供了具體示例。 [url=]清單?3.?使用?APC?緩存數(shù)據(jù)庫(kù)結(jié)果的示例[/url] <?php?function?getListOfUsers()?{?$list?=?apc_fetch('getListOfUsers');?if?(?empty($list)?)?{?$conn?=?new?PDO('mysql:dbname=testdb;host=127.0.0.1',?'dbuser',?'dbpass');?$sql?=?'SELECT?id,?name?FROM?users?ORDER?BY?name';?foreach?($conn->query($sql)?as?$row)?{?$list[]?=?$row;?}?apc_store('getListOfUsers',$list);?}?return?$list;?} 我們僅需一次執(zhí)行查詢(xún)。之后,我們將結(jié)果推送到?getListOfUsers?鍵下的?APC?緩存中。從這里開(kāi)始,直到緩存到期,您就能夠直接從緩存中獲取結(jié)果數(shù)組,跳過(guò)?SQL?查詢(xún)。 APC?和?Wincache?并非一個(gè)用戶(hù)緩存的惟一選擇;memcache?和?Redis?是不需要您在與?Web?服務(wù)器相同的服務(wù)器上運(yùn)行用戶(hù)緩存的其他流行選擇。這就提高了性能和靈活性,特別是當(dāng)您的?web?應(yīng)用程序跨多個(gè)?Web?服務(wù)器向外擴(kuò)展時(shí)。 回頁(yè)首 [url=]結(jié)束語(yǔ)[/url] 在本文中,我們探究了調(diào)優(yōu)您的?LAMP?性能的?5?種簡(jiǎn)單方法。我們不僅通過(guò)利用一個(gè)操作碼緩存和優(yōu)化?PHP?配置探究了?PHP?級(jí)別的技術(shù),而且探究了如何優(yōu)化您的數(shù)據(jù)庫(kù)設(shè)計(jì)來(lái)實(shí)現(xiàn)合理的索引編制。我們還探討了如何利用一個(gè)用戶(hù)緩存(以?APC?為例)來(lái)展示如何在數(shù)據(jù)不經(jīng)常改變時(shí)避免重復(fù)的數(shù)據(jù)庫(kù)調(diào)用。 ?

轉(zhuǎn)載于:https://www.cnblogs.com/gxldan/archive/2011/11/02/4066769.html

與50位技術(shù)專(zhuān)家面對(duì)面20年技術(shù)見(jiàn)證,附贈(zèng)技術(shù)全景圖

總結(jié)

以上是生活随笔為你收集整理的调优您的 LAMP 应用程序的 5 种简单方法的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。