内容简介 · · · · · ·
《高性能PHP应用开发》是一本广受好评的PHP性能优化方面的图书,通过介绍PHP的原理和相关的工具集来实现调优性能的目的。它分析和研究了Web应用程序的前端和后端,并系统地提升了其性能和运行效率。《高性能PHP应用开发》还介绍了PHP编码最佳实践的运用,以及如何使用工具来应用缓存技术。另外书中也涉及了对Web服务器的优化和数据库的优化。
作者简介 · · · · · ·
Yahoo公司技术专家力作
PHP性能优化的修炼秘籍
掌握各种重构技术与最佳实践
目 录
第1章 基准测试技术 1
1.1 PHP应用程序栈 1
1.2 基准测试实用工具 2
1.3 定义请求/响应生命周期 3
1.4 Apache Benchmark 4
1.4.1 安装Apache Benchmark 4
1.4.2 运行Apache Benchmark 5
1.4.3 弄清响应的含义 6
1.4.4 ab选项标记 8
1.4.5 ab陷阱 11
1.5 Siege 12
1.5.1 安装Siege 12
1.5.2 运行Siege 13
1.5.3 分析结果 13
1.5.4 Siege选项标记 15
1.5.5 测试很多URL 15
1.6 影响基准测试数字 16
1.6.1 地理位置 16
1.6.2 旅行的数据包 16
1.6.3 响应的大小 16
1.6.4 代码复杂性 17
1.6.5 浏览器行为 18
1.6.6 Web服务器设置 18
1.7 小结 19
第2章 提高客户端下载和呈现性能 20
2.1 优化响应的重要性 21
2.2 Firebug 21
2.2.1 安装Firebug 22
2.2.2 Firebug性能选项卡 22
2.2.3 Console选项卡 23
2.2.4 Net选项卡 25
2.3 YSlow 26
2.3.1 YSlow v2规则集 26
2.3.2 安装YSlow 27
2.3.3 启动YSlow 28
2.4 Page Speed 30
2.4.1 安装Page Speed 31
2.4.2 运行中的Page Speed 31
2.5 优化工具 32
2.5.1 JavaScript优化 33
2.5.2 JavaScript的放置位置 33
2.5.3 精简JavaScript 36
2.6 精简工具 37
2.7 YUI Compressor 38
2.8 Closure Compiler 38
2.8.1 减少资源请求 39
2.8.2 使用服务器端压缩 39
2.9 图像压缩 39
2.10 Smush.it 40
2.11 小结 42
第3章 PHP代码优化 43
3.1 PHP最佳实践 43
3.1.1 PHP的经济性 45
3.1.2 require与require_once 45
3.1.3 提前计算循环长度 47
3.1.4 使用foreach、for、while循环访问数组元素 49
3.1.5 文件访问 50
3.1.6 更快速地访问对象属性 52
3.2 使用VLD、strace和Xdebug一探究竟 54
3.2.1 用VLD查看Opcode函数 54
3.2.2 使用strace进行C级跟踪 56
3.3 发现瓶颈 58
3.3.1 Xdebug 2:PHP调试工具 58
3.3.2 验证安装 60
3.3.3 安装基于GUI的工具 61
3.4 小结 64
第4章 Opcode缓存 65
4.1 回顾路线图 65
4.2 PHP的生命周期 66
4.3 Opcode缓存工具 68
4.3.1 Alternative PHP Cache 68
4.3.2 XCache 75
4.3.3 用XCache缓存 76
4.3.4 XCache设置 77
4.3.5 eAccelerator 78
4.3.6 eA设置 82
4.4 小结 84
第5章 变量缓存 85
5.1 应用程序的性能路线图 85
5.2 实现变量缓存的价值 86
5.3 示例项目:创建表 87
5.3.1 获取记录 88
5.3.2 计算读取数据库的开销 89
5.4 APC缓存 93
5.4.1 将数据添加到缓存中 93
5.4.2 对APC进行基准测量 94
5.5 Memcached 96
5.5.1 安装Memcached 96
5.5.2 启动memcached服务器 97
5.5.3 在PHP中使用memcached 97
5.6 小结 101
第6章 选择正确的Web服务器 102
6.1 选择适合你的Web服务器程序包 103
6.1.1 安全性和稳定性非常重要 103
6.1.2 找到具有丰富知识的工程师非常重要 103
6.1.3 你的网站主要是静态内容 103
6.1.4 你在托管服务中托管 103
6.1.5 你正在使用不常见的PHP 扩展 103
6.2 Web服务器的使用情况图表 103
6.3 Web服务器请求的处理 104
6.4 Web服务器硬件 105
6.5 对Web服务器进行分类 106
6.6 Apache HTTPD 106
6.6.1 Apache Daemon命令行 107
6.6.2 Apache多处理模块 108
6.7 了解Apache模块 109
6.7.1 添加动态Apache模块 110
6.7.2 删除动态Apache模块 110
6.8 关于Apache的最后几点 111
6.9 lighttpd 111
6.9.1 安装lighttpd 111
6.9.2 lighttpd配置设置 113
6.9.3 比较静态负载内容 114
6.9.4 在lighttpd上安装PHP 115
6.10 Nginx 118
6.10.1 安装Nginx 118
6.10.2 Windows安装 121
6.11 Nginx作为静态Web服务器 122
6.11.1 安装FastCGI PHP 123
6.11.2 Nginx基准测试 124
6.12 小结 126
第7章 优化Web服务器和内容交付 127
7.1 测定Web服务器的性能 127
7.2 了解应用程序的内存占用情况 129
7.3 优化Apache中的进程 130
7.3.1 控制Apache客户端(Prefork MPM) 131
7.3.2 优化内存使用和防止产生交换 131
7.4 其他Apache配置调整 131
7.4.1 使用.htaccess文件和AllowOverride 132
7.4.2 使用FollowSymlinks 133
7.4.3 使用DirectoryIndex 133
7.4.4 关闭HostnameLookup 133
7.4.5 启用Keep-Alive 134
7.4.6 使用mod_deflate来压缩内容 134
7.5 扩展到单台服务器之外 135
7.5.1 使用Round-Robin DNS 135
7.5.2 使用负载均衡器 135
7.5.3 使用直接服务器返回 137
7.5.4 在服务器场的成员之间共享会话 138
7.5.5 与共享文件系统共享资产 139
7.5.6 与独立资产服务器共享资产 140
7.5.7 与内容分发网络共享资产 140
7.6 使用分布式架构的陷阱 141
7.6.1 缓存一致性问题 141
7.6.2 缓存版本问题 141
7.6.3 用户IP地址跟踪 142
7.6.4 多米诺骨牌或级联失败效应 143
7.6.5 部署失败 143
7.7 监视应用程序 144
7.8 小结 144
#### 第8章 数据库优化 145
8.1 MySQL简介 146
8.2 了解MySQL存储引擎 146
8.2.1 MyISAM:原始引擎 147
8.2.2 InnoDB:专业级的选择 147
8.2.3 选择存储引擎 148
8.3 了解MySQL如何使用内存 148
8.3.1 InnoDB与MyISAM内存使用的比较 149
8.3.2 每服务器与每连接(线程)内存使用的比较 149
8.4 查找配置文件 150
8.4.1 Mysqltuner.pl:优化数据库服务器的内存 151
8.4.2 示例服务器可能出现的问题 154
8.4.3 优化InnoDB 155
8.5 找到有问题的查询 155
8.6 分析有问题的查询 157
8.7 PHP数据库应用程序的建议 158
8.7.1 保持独立的读写连接 158
8.7.2 默认使用“utf8”(多字节Unicode)字符集 158
8.7.3 使用“UTC”日期格式 159
8.8 小结 160
**附录A** 在Windows上安装Apache、 MySQL、PHP和PECL 161
**附录B** 在Linux上安装Apache、 MySQL、PHP和PECL 174