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