PHP性能:序——谈性能

  这里不谈PHP的性能和其他语言的性能,这里讨论PHP自身的性能问题。

性能是什么?

  通俗的来讲,性能,就是在固定的环境下能做的事情的多少

为什么要性能?

  1、每一个软件或网站的环境是相对固定的

  2、在相当的一段时间内,在保障增加的用户数量的同时使得当前环境的软件或网站能够正常运行

  3、为了省钱

PHP的性能问题有什么?

  1、PHP语言级性能。就是使用PHP语言的本身性能,比如使用不同的算法能够改变性能。

  2、PHP的环境性能。包括使用的服务器软件的性能,设备硬件(CPU、硬盘、内存、网络)的性能。

  3、PHP的底层性能。就是构成PHP本身(PHP的版本更迭,也是为了这个问题。新的版本可能性能变化不大,但是稳定性和功能性肯定有所增加)和扩展库。

  

  这三点性能优化的困难程度是:PHP底层性能>>PHP的环境性能>PHP语言级性能。时间紧迫程度和困难程度刚好相反,因为语言级的性能占比大,可以短时间内看到效果。(2017-02-06更新)

  

PHP怎么运行的?

  PHP的运行流程如下:

  

    (图2017-02-06更新)

  PHP的实现主要是通过运行opcode来实现的,而PHP内置的函数就是zend引擎里已经包含的,不必编译成opcode。所以这里引出来了PHP语言级性能提高的一个点,就是使用内置函数。这个怎么优化,后面会陆陆续续来讲。

  文章为作者学习所得,有纰漏,请留言指出,谢谢支持!转载请附上本文章的连接

PHP性能:序——谈性能的更多相关文章

  1. PHP性能:序——谈ab(Apache Bench)压力测试工具

    PHP性能:序——谈ab(Apache Bench)压力测试工具 ab(Apache  Bench)是啥? ab是Apache自带的一个压力测试软件,可以通过ab命令和选项对某个URL进行压力测试.a ...

  2. 转:PHP性能:序——谈ab(Apache Bench)压力测试工具

    PHP性能:序——谈ab(Apache Bench)压力测试工具 ab(Apache  Bench)是啥? ab是Apache自带的一个压力测试软件,可以通过ab命令和选项对某个URL进行压力测试.a ...

  3. ELK 性能(1) — Logstash 性能及其替代方案

    ELK 性能(1) - Logstash 性能及其替代方案 介绍 当谈及集中日志到 Elasticsearch 时,首先想到的日志传输(log shipper)就是 Logstash.开发者听说过它, ...

  4. 提高 web 应用性能之 CSS 性能调优

    简介 Web 开发中经常会遇到性能的问题,尤其是 Web 2.0 的应用.CSS 代码是控制页面显示样式与效果的最直接“工具”,但是在性能调优时他们通常被 Web 开发工程师所忽略,而事实上不规范的 ...

  5. Java程序性能优化之性能概述

    性能的基本概念 一).什么叫程序的性能? 程序运行所需的内存和时间. 二).性能的表现形式: 1).执行速度: 程序的反应是否迅速,响应时间是否足够短. 2).启动时间:程序从运行到可以处理正常业务所 ...

  6. website 性能检测 & 前端性能优化

    website 性能检测 & 前端性能优化 https://cdn.xgqfrms.xyz/ https://mobile.xgqfrms.xyz/ PageSpeed Insights ht ...

  7. 从 Auto Layout 的布局算法谈性能

    这是使用 ASDK 性能调优系列的第二篇文章,前一篇文章中讲到了如何提升 iOS 应用的渲染性能,你可以点击 这里 了解这部分的内容. http://t.cn/Rc4KbUC 在上一篇文章中,我们提到 ...

  8. 网站性能,javascript性能相关知识点

    一.高性能网站 <高性能网站建设指南>一书中提出用户只有10%-20%最终用户响应时间是花在从web服务器获取html文档并传送到浏览器中,80%的时间都花在了等待页面组件中,由此提出了构 ...

  9. 常用CSS优化总结——网络性能与语法性能建议

    在前端面试中最常见的问题就是页面优化和缓存(貌似也是页面优化),被问了几次后心虚的不行,平然平时多少会用到一些,但突然问我,很难把自己知道的都说出来.页面优化明显不是一两句能够说完的,这两天总结了一下 ...

随机推荐

  1. [BZOJ 4031] 小Z的房间

    Link: BZOJ 4031 传送门 Solution: 矩阵树定理的模板题 看完下面两篇文章就会啦: 周冬论文:https://wenku.baidu.com/view/872eb02de2bd9 ...

  2. POJ 2566:Bound Found(Two pointers)

    [题目链接] http://poj.org/problem?id=2566 [题目大意] 给出一个序列,求一个子段和,使得其绝对值最接近给出值, 输出这个区间的左右端点和区间和. [题解] 因为原序列 ...

  3. List集合-保存和输出宠物信息

    package collection; /** * 宠物类 * @author * */ public class Pet { private String name; private String ...

  4. Javascript模块化编程(二):AMD规范(转)

    这个系列的第一部分介绍了Javascript模块的基本写法,今天介绍如何规范地使用模块. (接上文) 七.模块的规范 先想一想,为什么模块很重要? 因为有了模块,我们就可以更方便地使用别人的代码,想要 ...

  5. Python学习笔记——模块

    使用模块 python中包的组织方式是模块,一个使用其它模块的例子如下: # Filename: using_sys.py import sys print 'The command line arg ...

  6. [置顶] kubernetes资源对象--ResourceQuotas

    概念 Resource Quotas(资源配额,简称quota)是对namespace进行资源配额,限制资源使用的一种策略. K8S是一个多用户架构,当多用户或者团队共享一个K8S系统时,SA使用qu ...

  7. C源程序到可执行文件的四个过程

    C源程序到可执行文件的四个过程 1.预处理:预编译器执行.譬如C中的宏定义就是由预编译器处理,注释等也是由预编译器处理的 gcc -E -hello.c -o hello.i 2.编译:编译器来执行. ...

  8. Hadoop 变更磁盘的方法总结

    背景说明HDFS文件系统使用一段时间后,可能会出现磁盘空间不足或是磁盘损坏的现象,此时需要对DataNode节点的磁盘进行扩充或是更换,本文对操作流程做一个简单的总结 操作步骤 挂载硬盘 添加硬盘的操 ...

  9. 全栈技术经理——团队管理:每周问问你的团队这这些问题 V1.0

    全栈技术经理--团队管理:每周问问你的团队这这些问题 V1.0 1.本周取得了哪些进展? ​ 通过回答这个问题可以让员工庆祝甚至夸耀一些自己的成果,包括那些跟最高优先级不相干而被忽视的小事情.借此你也 ...

  10. ImageSwitcher (图像切换器,显示图片)

    ImageSwitcher继承了ViewSwitcher,主要在切换图片时加入动画效果 使用方法: 1.为ImageSwitcher提供一个ViewFactory,该ViewFactory生成的Vie ...