出版時(shí)間:2011-11 出版社:人民郵電出版社 作者:Armando Padilla,Tim Hawkins 頁數(shù):177 譯者:劉霞,盛海艷
Tag標(biāo)簽:無
內(nèi)容概要
本書是一本廣受好評(píng)的PHP性能優(yōu)化方面的圖書,通過介紹PHP的原理和相關(guān)的工具集來實(shí)現(xiàn)調(diào)優(yōu)性能的目的。它分析和研究了Web應(yīng)用程序的前端和后端,并系統(tǒng)地提升了其性能和運(yùn)行效率。本書還介紹了PHP編碼最佳實(shí)踐的運(yùn)用以及如何使用工具來應(yīng)用緩存技術(shù)。另外書中也涉及了對Web服務(wù)器的優(yōu)化和數(shù)據(jù)庫的優(yōu)化。本書適合PHP開發(fā)人員閱讀。
作者簡介
Armando
Padilla,專注于PHP技術(shù)已有13年,領(lǐng)導(dǎo)并全面參與了基于LAMP的多個(gè)網(wǎng)絡(luò)應(yīng)用程序。Armando目前是Yahoo的高級(jí)工程師,曾負(fù)責(zé)多個(gè)著名的高流量應(yīng)用,例如2010年冬奧會(huì)和2010年南非世界杯網(wǎng)站、Yahoo手機(jī)新聞應(yīng)用程序。
Tim
Hawkins,早在1993年就創(chuàng)建了站點(diǎn),這是世界上最早的分類門戶站點(diǎn)之一。之后他幫助Yahoo歐洲公司打造了很多關(guān)鍵產(chǎn)品,例如搜索、本地搜索、郵件、即時(shí)通信軟件和社會(huì)化網(wǎng)絡(luò)等。他目前在美國的一家大型電子零售公司管理龐大的海外團(tuán)隊(duì),負(fù)責(zé)開發(fā)和部署下一代電子商務(wù)應(yīng)用程序。
書籍目錄
第1章 基準(zhǔn)測試技術(shù)
1.1 PHP應(yīng)用程序?!?br /> 1.2 基準(zhǔn)測試實(shí)用工具
1.3 定義請求/響應(yīng)生命周期
1.4 Apache Benchmark
1.4.1 安裝Apache Benchmark
1.4.2 運(yùn)行Apache Benchmark
1.4.3 弄清響應(yīng)的含義
1.4.4 ab選項(xiàng)標(biāo)記
1.4.5 ab陷阱
1.5 Siege
1.5.1 安裝Siege
1.5.2 運(yùn)行Siege
1.5.3 分析結(jié)果
1.5.4 Siege選項(xiàng)標(biāo)記
1.5.5 測試很多URL
1.6 影響基準(zhǔn)測試數(shù)字
1.6.1 地理位置
1.6.2 旅行的數(shù)據(jù)包
1.6.3 響應(yīng)的大小
1.6.4 代碼復(fù)雜性
1.6.5 瀏覽器行為
1.6.6 Web服務(wù)器設(shè)置
1.7 小結(jié)
第2章 提高客戶端下載和呈現(xiàn)性能
2.1 優(yōu)化響應(yīng)的重要性
2.2 Firebug
2.2.1 安裝Firebug
2.2.2 Firebug性能選項(xiàng)卡
2.2.3 Console選項(xiàng)卡
2.2.4 Net選項(xiàng)卡
2.3 YSlow
2.3.1 YSlow v2規(guī)則集
2.3.2 安裝YSlow
2.3.3 啟動(dòng)YSlow
2.4 Page Speed
2.4.1 安裝Page Speed
2.4.2 運(yùn)行中的Page Speed
2.5 優(yōu)化工具
2.5.1 JavaScript優(yōu)化
2.5.2 JavaScript的放置位置
2.5.3 精簡JavaScript
2.6 精簡工具
2.7 YUI Compressor
2.8 Closure Compiler
2.8.1 減少資源請求
2.8.2 使用服務(wù)器端壓縮
2.9 圖像壓縮
2.10 Smush.it
2.11 小結(jié)
第3章 PHP代碼優(yōu)化
3.1 PHP最佳實(shí)踐
3.1.1 PHP的經(jīng)濟(jì)性
3.1.2 require與require_once
3.1.3 提前計(jì)算循環(huán)長度
3.1.4 使用foreach、for、while循環(huán)訪問數(shù)組元素
3.1.5 文件訪問
3.1.6 更快速地訪問對象屬性
3.2 使用VLD、strace和Xdebug一探究竟
3.2.1 用VLD查看Opcode函數(shù)
3.2.2 使用strace進(jìn)行C級(jí)跟蹤
3.3 發(fā)現(xiàn)瓶頸
3.3.1 Xdebug 2:PHP調(diào)試工具
3.3.2 驗(yàn)證安裝
3.3.3 安裝基于GUI的工具
3.4 小結(jié)
第4章 Opcode緩存
4.1 回顧路線圖
4.2 PHP的生命周期
4.3 Opcode緩存工具
4.3.1 Alternative PHP Cache
4.3.2 XCache
4.3.3 用XCache緩存
4.3.4 XCache設(shè)置
4.3.5 eAccelerator
4.3.6 eA設(shè)置
4.4 小結(jié)
第5章 變量緩存
5.1 應(yīng)用程序的性能路線圖
5.2 實(shí)現(xiàn)變量緩存的價(jià)值
5.3 示例項(xiàng)目:創(chuàng)建表
5.3.1 獲取記錄
5.3.2 計(jì)算讀取數(shù)據(jù)庫的開銷
5.4 APC緩存
5.4.1 將數(shù)據(jù)添加到緩存中
5.4.2 對APC進(jìn)行基準(zhǔn)測量
5.5 Memcached
5.5.1 安裝Memcached
5.5.2 啟動(dòng)Memcached服務(wù)器
5.5.3 在PHP中使用Memcached
5.6 小結(jié)
第6章 選擇正確的Web服務(wù)器
6.1 選擇適合你的Web服務(wù)器程序包
6.1.1 安全性和穩(wěn)定性非常重要
6.1.2 找到具有豐富知識(shí)的工程師非常重要
6.1.3 你的網(wǎng)站主要是靜態(tài)內(nèi)容
6.1.4 你在托管服務(wù)中托管
6.1.5 你正在使用不常見的PHP擴(kuò)展
6.2 Web服務(wù)器的使用情況圖表
6.3 Web服務(wù)器請求的處理
6.4 Web服務(wù)器硬件
6.5 對Web服務(wù)器進(jìn)行分類
6.6 Apache HTTPD
6.6.1 Apache Daemon命令行
6.6.2 Apache多處理模塊
6.7 了解Apache模塊
6.7.1 添加動(dòng)態(tài)Apache模塊
6.7.2 刪除動(dòng)態(tài)Apache模塊
6.8 關(guān)于Apache的最后幾點(diǎn)
6.9 lighttpd
6.9.1 安裝lighttpd
6.9.2 lighttpd配置設(shè)置
6.9.3 比較靜態(tài)負(fù)載內(nèi)容
6.9.4 在lighttpd上安裝PHP
6.10 Nginx
6.10.1 安裝Nginx
6.10.2 Windows安裝
6.11 Nginx作為靜態(tài)Web服務(wù)器
6.11.1 安裝FastCGI PHP
6.11.2 Nginx基準(zhǔn)測試
6.12 小結(jié)
第7章 優(yōu)化Web服務(wù)器和內(nèi)容交付
7.1 測定Web服務(wù)器的性能
7.2 了解應(yīng)用程序的內(nèi)存占用情況
7.3 優(yōu)化Apache中的進(jìn)程
7.3.1 控制Apache客戶端(PreforkMPM)
7.3.2 優(yōu)化內(nèi)存使用和防止產(chǎn)生交換
7.4 其他Apache配置調(diào)整
7.4.1 使用.htaccess文件和AllowOverride
7.4.2 使用FollowSymlinks
7.4.3 使用DirectoryIndex
7.4.4 關(guān)閉HostnameLookup
7.4.5 啟用Keep-Alive
7.4.6 使用mod_deflate壓縮內(nèi)容
7.5 擴(kuò)展到單臺(tái)服務(wù)器之外
7.5.1 使用Round-Robin DNS
7.5.2 使用負(fù)載均衡器
7.5.3 使用直接服務(wù)器返回
7.5.4 在服務(wù)器場的成員之間共享會(huì)話
7.5.5 與共享文件系統(tǒng)共享資產(chǎn)
7.5.6 與獨(dú)立資產(chǎn)服務(wù)器共享資產(chǎn)
7.5.7 與內(nèi)容分發(fā)網(wǎng)絡(luò)共享資產(chǎn)
7.6 使用分布式架構(gòu)的陷阱
7.6.1 緩存一致性問題
7.6.2 緩存版本問題
7.6.3 用戶IP地址跟蹤
7.6.4 多米諾骨牌或級(jí)聯(lián)失敗效應(yīng)
7.6.5 部署失敗
7.7 監(jiān)視應(yīng)用程序
7.8 小結(jié)
第8章 數(shù)據(jù)庫優(yōu)化
8.1 MySQL簡介
8.2 了解MySQL存儲(chǔ)引擎
8.2.1 MyISAM:原始引擎
8.2.2 InnoDB:專業(yè)級(jí)的選擇
8.2.3 選擇存儲(chǔ)引擎
8.3 了解MySQL如何使用內(nèi)存
8.3.1 InnoDB與MyISAM內(nèi)存使用的比較
8.3.2 每服務(wù)器與每連接(線程)內(nèi)存使用的比較
8.4 查找配置文件
8.4.1 Mysqltuner.pl:優(yōu)化數(shù)據(jù)庫服務(wù)器的內(nèi)存
8.4.2 示例服務(wù)器可能出現(xiàn)的問題
8.4.3 優(yōu)化InnoDB
8.5 找到有問題的查詢
8.6 分析有問題的查詢
8.7 PHP數(shù)據(jù)庫應(yīng)用程序的建議
8.7.1 保持獨(dú)立的讀寫連接
8.7.2 默認(rèn)使用“utf 8”(多字節(jié)Unicode)字符集
8.7.3 使用“UTC”日期格式
8.8 小結(jié)
附錄A 在Windows上安裝Apache、MySQL、PHP和PECL
附錄B 在Linux上安裝Apache、MySQL、PHP和PECL
章節(jié)摘錄
版權(quán)頁:插圖:8.7.1 保持獨(dú)立的讀寫連接開始就創(chuàng)建兩個(gè)數(shù)據(jù)庫連接是一個(gè)好的方法,一個(gè)用于讀取,一個(gè)用于寫入,并且允許不同的數(shù)據(jù)庫服務(wù)器連接它們。如果你只有一個(gè)服務(wù)器,則將它們設(shè)置為彼此相同。當(dāng)你進(jìn)行應(yīng)用程序的編碼時(shí),可以把更改數(shù)據(jù)的任何查詢(UPDATE、INSERT、DELETE等)都寫成使用寫入連接,純SELECT或讀取查詢則一律使用讀取連接。如果你需要升級(jí)你的應(yīng)用程序,則可以將數(shù)據(jù)庫服務(wù)器分離到其他計(jì)算機(jī)上,并通過復(fù)制來連接它們。但若要實(shí)現(xiàn)這一工作,必須確保所有寫入都指向你的主要服務(wù)器,所有讀取都指向適當(dāng)?shù)膹膶俜?wù)器。通過使用兩個(gè)連接,可以輕松重新配置你的應(yīng)用程序以支持大量不同的擴(kuò)展選項(xiàng),使用一個(gè)或多個(gè)從屬服務(wù)器來增加查詢帶寬。從一開始就實(shí)現(xiàn)這種方案只需要很少的努力,但之后卻會(huì)大大增加你的選擇。
編輯推薦
《高性能PHP應(yīng)用開發(fā)》:全球已有超過百萬的程序員從事PHP開發(fā),而任何認(rèn)真的程序員均需要了解如何提升PHP項(xiàng)目的性能。《高性能PHP應(yīng)用開發(fā)》專門研究了這一課題。《高性能PHP應(yīng)用開發(fā)》將深入探討在應(yīng)用程序運(yùn)行中起重要作用的所有技術(shù)和組件?,F(xiàn)在是數(shù)秒間就決定能否留住用戶的時(shí)代,所有人都必須把優(yōu)化作為項(xiàng)目路線圖的必備環(huán)節(jié)。但到底應(yīng)該分析應(yīng)用程序中的哪些組件呢?應(yīng)該怎樣優(yōu)化,又該如何測量應(yīng)用程序的執(zhí)行性能呢?這些正是《高性能PHP應(yīng)用開發(fā)》要回答的問題,《高性能PHP應(yīng)用開發(fā)》的內(nèi)容還包括:為什么應(yīng)該優(yōu)化某個(gè)特定的組件,為什么優(yōu)化某個(gè)函數(shù)會(huì)比優(yōu)化另一個(gè)更有效果,如何尋找和使用面向開源社區(qū)的優(yōu)化工具,如何部署緩存軟件和Web服務(wù)器軟件。,此外,《高性能PHP應(yīng)用開發(fā)》還會(huì)講解更多高級(jí)技巧,包括:使用Xdebuq來分析一些沒有實(shí)現(xiàn)最佳運(yùn)行效率的函數(shù);比較不同的PHP函數(shù)所執(zhí)行的opcode,從而搜索到運(yùn)行效率最高的函數(shù);當(dāng)應(yīng)用程序正在為用戶提供服務(wù)時(shí),使用strace來分析Apache。讀完《高性能PHP應(yīng)用開發(fā)》后,讀者會(huì)對從哪里開始優(yōu)化形成完整的認(rèn)識(shí)。最重要的是,在未來優(yōu)化PHP應(yīng)用程序時(shí),將會(huì)擁有趁手的工具來助一臂之力。
圖書封面
圖書標(biāo)簽Tags
無
評(píng)論、評(píng)分、閱讀與下載