PHP:
小意思:
- 不要使用array_key_exists,用isset来判断键值是否在数组中;
- 如果有可能,采用static方法;
- 避免使用__set,__get等魔术方法;
- 使用echo 代替print();
- 使用include、require代替include_once\require_once;
- @操作符是邪恶的;
- 不要把count/strlen/sizeof放到for循环的语句中。
需关注:
- 代码洁癖,不要有错误,做好notice也不要有;
- 干净的代码,非必要不引入;
- SQL语句不要放到for循环里执行,最后能用group by解决,或者合并写入。
- 出了问题再profile你的代码;
- 通过auto load 实现lazy load;
- 相比较运行速度,更需要注意memory limit,尤其一些shell处理脚本。
线上PHP监控:
偶发数据库连接失败、边界溢出、后台服务抖动、合作方数据异常。。。。
解决办法:
通过set_error_handler 来捕捉线上运行错误,统一收集日志、报警;
通过register_shutdown_function来捕捉fatal error 、记录运行时间。
Profiling(剖析):
PHP工具:xdebug,xhprof、或者
整体性能工具:
ab -n 100000 -c 200 -k http://127.0.0.1/test.php
opcode: