灯火互联
管理员
管理员
  • 注册日期2011-07-27
  • 发帖数41778
  • QQ
  • 火币41290枚
  • 粉丝1086
  • 关注100
  • 终身成就奖
  • 最爱沙发
  • 忠实会员
  • 灌水天才奖
  • 贴图大师奖
  • 原创先锋奖
  • 特殊贡献奖
  • 宣传大使奖
  • 优秀斑竹奖
  • 社区明星
阅读:2801回复:1

[Linux类书籍]高性能LAMP程序设计.pdf版

楼主#
更多 发布于:2013-05-26 14:05

图片:958771.jpg


高性能LAMP程序设计
 
PHP篇
Performance…
?要用array_key_exists,用isset来判断键值是否在数组中
?如有可能,采用static静态方法
?避免使用__set, __get等魔术方法 ?使用echo代替print() ?使用include、require代替include_once、require_once ?@操作符是邪恶的
?要把 count/strlen/sizeof 放到 for 循环的条件语句中
?……
好意思,今天讲这些…
Why?
循环200W次 原生获取:0. 31μs/每次
__get:1μs/每次
原生设置:0.38μs/每次 __set:1.3μs/每次
说实在的,我care这些….
But…
?代码洁癖,程序中最好要有错误,哪怕是notice
?干净的代码,非必要引入
?SQL语句要放在for循环里面执行,最好能用group by之类解决,戒者 合并写入 ?出了问题再profile你的PHP代码 ?通过auto loading 实现 lazy loading ?相比较运行速度,更需要注意memory limit,尤其是一些shell处理脚本
线上PHP监控
你的线上PHP代码运行正常吗?
偶发数据库连接失败、边界溢出、后台服务抖劢、合作方数据异常……
解决办法:
通过set_error_handler来捕获线上运行错误,统一收集日志、报警 通过register_shutdown_function来捕获fatal errors、记录运行时间
Profiling
?PHP工具: Xdebug、xhprof,戒者整体性能工具
 
点击下载

喜欢0 评分0
376432297
终身会员
终身会员
  • 注册日期2014-07-08
  • 发帖数1709
  • QQ376432297
  • 火币2065枚
  • 粉丝0
  • 关注0
沙发#
发布于:2017-10-24 17:19
玩刚才的地图

回复(0) 喜欢(0)     评分
游客

返回顶部