* 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)

PHP面试题之优化的更多相关文章

  1. 大厂常问iOS面试题--性能优化篇

    1.造成tableView卡顿的原因有哪些? 1.最常用的就是cell的重用, 注册重用标识符 如果不重用cell时,每当一个cell显示到屏幕上时,就会重新创建一个新的cell 如果有很多数据的时候 ...

  2. 大厂常问iOS面试题--多线程篇

    1.进程与线程 进程: 1.进程是一个具有一定独立功能的程序关于某次数据集合的一次运行活动,它是操作系统分配资源的基本单元. 2.进程是指在系统中正在运行的一个应用程序,就是一段程序的执行过程,我们可 ...

  3. web开发微信文章目录

    Web开发微信文章目录 2015-12-13 Web开发 本文是Web开发微信的文章目录.通过目录查看文章编号,回复文章编号就能查看文章全文. 回复编号查看全文,搜索分类名可以获得该分类下的文章.   ...

  4. 常见面试题之ListView的复用及如何优化

    经常有人问我,作为刚毕业的要去面试,关于安卓开发的问题,技术面试官会经常问哪些问题呢?我想来想去不能一股脑的全写出来,我准备把这些问题单独拿出来写,并详细的分析一下,这样对于初学者是最有帮助的.这次的 ...

  5. 【5】-阿里面试题android网络图片加载优化

    题目: 遇到网络不好,卡顿的时候如何对网络的加载图片进行优化? 思路: 从加载的图片的本身和手机的存储两方面考虑 解决办法: 1.找现有图片格式的替换者 在众多的图片格式中,选择了Google的Web ...

  6. 关于 iOS 性能优化方面的面试题,

    这是我前面几天碰到的面试题: 如何对定位和分析项目中影响性能的地方?以及如何进行性能优化? 我的答案: 定位方法: instruments   在iOS上进行性能分析的时候,首先考虑借助instrum ...

  7. StringBuilder和StringBuffer解析(百度面试题优化须要用到的)

    StringBuilder是java5及以后提供的API,它不是线程安全的,而StringBuffer是java1.4曾经的API,它是线程安全的,所以说StringBuilder的效率更高一些,今天 ...

  8. 某浪PHP面试题及答案优化

    前几天一网友去国内某知名IT公司某浪面试PHP,在他谈心得的时候得一面试题,下面写问题答案及优化方案,希望大家多提提意见. “神马,杨辉三角?” 我估计太久不上学了,当年初中数学及大学C语言课上的杨辉 ...

  9. 面试题: mysql 数据库已看 sql安全性 索引 引擎 sql优化

    总结的一些MySQL数据库面试题 2016年06月16日 11:41:18 阅读数:4950 一.sql语句应该考虑哪些安全性? (1)防止sql注入,对特殊字符进行转义,过滤或者使用预编译的sql语 ...

随机推荐

  1. 多行文本垂直居中div高度确定

    父元素高度确定的多行文本.图片.块状元素的垂直居中的方法有两种: 方法一:将内容写入table(包括tbody.tr.td)中的td标签里,同时设置 vertical-align:middle. cs ...

  2. encoding(hdoj1020)

    Problem Description Given a string containing only 'A' - 'Z', we could encode it using the following ...

  3. 图片异步加载 ,KVO

    图片异步下载类目: .h #import <UIKit/UIKit.h> typedef void (^ImageBlock)(UIImage *img); @interface UIIm ...

  4. QTDesigner的QVBoxLayout自动随窗口拉伸

    在MainWindow的构造函数中添加如下代码://设置Uiui.setupUi(this); //使Ui可自适应父窗口大小QVBoxLayout* mainLayout = new QVBoxLay ...

  5. (四)boost库之正则表达式regex

    (四)boost库之正则表达式regex 正则表达式可以为我们带来极大的方便,有了它,再也不用为此烦恼 头文件: #include <boost/regex.hpp> 1.完全匹配 std ...

  6. cdecl、pascal、stdcall、fastcall

    Directive Parameter order   Clean-up Passes parameters in registers?register   Left-to-right         ...

  7. Java实现二叉搜索树的添加,前序、后序、中序及层序遍历,求树的节点数,求树的最大值、最小值,查找等操作

    什么也不说了,直接上代码. 首先是节点类,大家都懂得 /** * 二叉树的节点类 * * @author HeYufan * * @param <T> */ class Node<T ...

  8. linux分区,文件系统,目录结构概述

    1.Linux中如何表示硬盘,分区 Linux内核读取光驱,硬盘等资源时均通过“设备文件”的形式进行,因此在linux系统中,将硬 盘和分区表示为不同的文件.具体表述形式如下: 硬盘:对于IDE接口的 ...

  9. 悼念512汶川大地震遇难同胞――珍惜现在,感恩生活 分类: dp 2015-05-21 10:50 14人阅读 评论(0) 收藏

    Description 急!灾区的食物依然短缺! 为了挽救灾区同胞的生命,心系灾区同胞的你准备自己采购一些粮食支援灾区,现在假设你一共有资金n元,而市场有m种大米,每种大米都是袋装产品,其价格不等,并 ...

  10. 关于” fatal error C1010: unexpected end of file while looking forprecompiled header directive”问题

    其中文意思是:致命错误C1010:意想不到的文件结束而寻找预编译头文件的指令错误执行cl exe. 经过多次的查找,终于解决这问题 方法一: 在头文件中加“#include "stdafx. ...