PHP学习心得


PHP语言级的性能优化

<h2>PHP性能问题解决方向</h2> <ul> <li>PHP语言级的性能优化</li> <li>PHP周边问题的性能优化</li> <li>PHP语言自身分析、优化</li> </ul> <h2>ab</h2> <ul> <li>Apache Benchmark 简称 ab</li> <li>ab由Apache提供的压力测试软件。安装apache服务器会自带该压测软件</li> <li>在linux中使用</li> </ul> <pre><code class="language-shell">ab -n1000 -c100 http://www.baidu.com # -n 请求数, -c 并发数</code></pre> <h2>php语言级性能优化</h2> <ul> <li>优化点 <ul> <li>少写代码,多用php自身能力,多用自身提供的函数</li> </ul></li> <li>性能问题 <ul> <li>自写代码冗余较多,可读性不佳,并且性能低</li> </ul></li> <li>为什么性能低 <ul> <li>php代码需要编译、解析为底层语言,这一过程每次请求都会处理一遍,开销大</li> </ul></li> <li>好的方法 <ul> <li>多使用php内置变量、常量、函数</li> </ul></li> </ul> <h2>php代码运行流程</h2> <ul> <li>*.php(php文件)-&gt;scanner(扫描)-&gt;exprs(表达式)-&gt;parser(解析)-&gt;opcoder(编码)-&gt;exec(执行)-&gt;output(输出)</li> </ul> <h2>php内置函数的性能优劣</h2> <ul> <li>情况描述 <ul> <li>php内置函数之间依然存在快慢差异</li> </ul></li> <li>好的建议 <ul> <li>多去了解php内置函数的时间复杂度</li> </ul></li> </ul> <h2>尽可能少用魔法函数</h2> <ul> <li>情况描述 <ul> <li>php提供的魔法函数,性能不佳</li> </ul></li> <li>为什么性能低 <ul> <li>为了给php程序员省事,php语言为你做了很多事情</li> </ul></li> <li>好的方法 <ul> <li>尽可能规避使用php魔法函数</li> </ul></li> </ul> <h2>不要使用@</h2> <ul> <li>会在代码开始前、结束后,增加opcode,忽略报错</li> <li>vld <ul> <li>查看PHP opcode扩展</li> </ul></li> </ul> <h2>合理使用内存</h2> <ul> <li>php有内存回收机制保底,但也请小心使用内存</li> <li>利用unset()及时释放不使用的内存 <ul> <li>有时候unset()会出现注销不掉的情况</li> </ul></li> </ul> <h2>尽量少的使用正则表达式</h2> <ul> <li>正则表达式的回溯开销较大</li> <li>利用字符串处理函数,实现相同逻辑</li> </ul> <h2>避免在循环内操作</h2> <ul> <li>做运算</li> <li>数据库操作</li> </ul> <h2>减少计算密集型业务</h2> <ul> <li>php不适合密集型运算的场景,php语言特性决定的。</li> <li>php适合衔接webserver与后端服务、UI呈现</li> </ul>

页面列表

ITEM_HTML