高性能LAMP程序设计.pdf版
3526 点击·1 回帖
![]() | ![]() | |
![]() | 图片: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,戒者整体性能工具 点击下载 | |
![]() | ![]() |