
| Yahoo公司技术专家力作 PHP性能优化修炼秘籍 掌握各种重构技术和最佳实践 |
| Armando Padilla专注于PHP技术已有13年,领导并全面参与了基于LAMP的多个网络应用程序。Armando目前是Yahoo的高级工程师,曾负责多个著名的高流量应用,例如2010年冬奥会和2010年南非世界杯网站Yahoo手机新闻应用程序。 Tim Hawkins早在1993年就创建了loot.com站点,这是世界上最早的分类门户站点之一。之后他帮助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 客户端(preforkmpm) 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 默认使用“utf 8”(多字节unicode)字符集 158 8.7.3 使用“utc”日期格式 159 8.8 小结 160 附录a 在windows 上安装apache、mysql、php 和pecl 161 附录b 在linux 上安装apache、mysql、php 和pecl 174 |
商品评论(0条)