课程名称:性能优化之PHP优化
课程章节:PHP语言级的性能优化(二)
讲师:Pangee
https://www.imooc.com/video/4168
课程内容:
尽量多的使用PHP自带的系统函数、常量、变量
PHP自带的函数 实现相同功能的函数 几个函数之间的性能也是有区分的 eg: isset() array_key_exists()
尽量规避PHP为我们提供的魔法函数 如自己实现起来非常费劲时 可以考虑使用魔法函数
4.错误抑制符会产生额外的开销
该符号运作机制:在注释的代码行首添加opcode设置错误等级,在行尾再添加一些opcode恢复错误等级.进而实现在 作用行实现忽略报错.
5.可以通过安装vld-phpopcode扩展查看phpopcode代码.
6不要用错误抑制符“@”,会增加额外的性能开销,且不便于发现问题。用try catch这种错误控制的方法查找问题。
7优化点:合理使用内存,使用unset()及时释放不适用的内存
情况描述:php有内存回收机制保底,但也请小心使用内存
好的建议:利用unset()及时释放不使用的内存(注:unset出现注销不掉的情况,可百度)
8优化点:尽量少使用正则表达式,利用字符串处理函数,实现相同的逻辑
情况描述:正则表达式的回溯开销较大,优化正则表达式需要技术活
好的建议:利用字符串处理函数,实现相同的逻辑
9避免在循环内做运算
10
优化点:务必使用带引号字符串做键名(这里准确来说应该叫键名而不叫键值)
情况描述:php会将没有引号的键名当做常量,产生查找常量的开销
好的建议:严格使用带引号作为键名
课程收获
php语言级性能优化点:减少计算密集型业务。
PHP不适合做密集型业务:大批量的日志分析、大批量数据处理、处理大数据。
php语言特性决定了php不适合做大数据运算。(php的底层是c,php的运算、处理流程都需要转换成C来实现,加上PHP的运行环境等因素,其效率不如C
php适用场景:适合衔接Webserver与后端服务UI呈现