zoukankan      html  css  js  c++  java
  • PHP面试题之优化

     * PHP性能问题
     * 1.PHP语法使用的不恰当
     * 2.使用PHP语言做了它不擅长的事
     * 3.使用PHP语言链接的服务不给力
     * 4.PHP自身做不了的事情
     * 
     * PHP的性能问题的解决方向
     * 1.PHP语言级的性能优化(代码优化)
     * 2.PHP周边问题的性能优化(linux,mysql,磁盘等)
     * 3.PHP语言性能的优化(c层)
     * 
     * 使用ab压力测试(-n请求数  -c并发数 url目标压测地址)
     * ./ab -n1000 -c100 http://www.baidu.com
     * Request per second每秒接受的请求数(越大越好)
     * Time per request一个请求需要的时间(越小越好)
     * 
     * time php test.php 测试代码执行时间
     *
     * vld- PHP Opcode查看扩展
     * php -dvld.active=1 -dvld.execute=0  test.php
     * 
     * PHP代码运行流程 
     * *.php(PHP文件)->Scanner(扫描代码,分析)->Exprs(保存成zend引擎可以识别的文件)->Parser(解析)->Opcodes(能被执行的文件)->Exec(执行)->Output(输出结果)
     * 多使用PHP内置变量,常量,函数
     * php内置函数也存在差异,多使用时间复杂度低的.例isset()和array_key_exists()存在差异
     * 尽可能规避使用PHP魔法函数
     * 禁用@错误抑制符,会产生额外的开销
     * 合理使用内存,利用unset()及时释放不使用的内存
     * 尽量少使用正则表达式
     * 避免在循环内做运算for($i=0;strlen($str);$i++){}
     * 减少计算密集型业务(php语言特性决定了PHP不适合做大数据量运算)
     * 务必使用带引号字符串做键值(key)
     * 减少文件类操作 内存<<数据库<磁盘<读写网络数据
     * 优化网络:1.设置超时时间 连接超时200ms  读超时800ms 写超时500  2.将串行请求并行化:使用curl_multi_*() ,使用swoole扩展
     * 压缩PHP接口输出:Gzip  好处:client更快获取数据 坏处:额外的cpu开销
     * PHP缓存复用
     * 时间窗口重叠方法
     * PHP旁路方案
     * xhprof (php -ri xhprof)
  • 相关阅读:
    【SQL Server学习笔记】Service Broker创建异步的、数据驱动的消息应用程序
    记录几句不错的话
    DBA最缺的不是技术
    小数点引起的数据类型转换问题
    hdu 3062 2SAT最基础题
    POJ 1679 判断最小生成树是否唯一
    POJ 1459 构图+最大流(Edmond_karp模版)
    POJ 3522 最大边与最小边差值最小的生成树
    POJ 1659 根据度序列构图
    POJ 1273 求最大流(Edmond_karp模板题)
  • 原文地址:https://www.cnblogs.com/CodeAnti/p/4896578.html
Copyright © 2011-2022 走看看