深入理解php,lamp,php与计算机硬件

来源:互联网 发布:mac常用软件 编辑:程序博客网 时间:2024/05/02 18:05

1,先来看看php四层结构

第一层:Zend引擎,zend引擎都是用c写的,属于php的内核部分,每次请求的时候zend引擎都会把php代码翻译(即编译)成可执行的opcode码,并且实现了基本的数据结构(如hashtable),内存管理并且提供了api供外部调用,其它的三层都是围绕zend实现


第二层:Extensions,extensions通过组件式的方式提供各种基础服务,我们常见的各种内置函数(如array系列)、标准库等都是通过extension来实现,用户也可以根据需要实现自己的extension以达到功能扩展、性能优化等目的(如贴吧正在使用的php中间层、富文本解析就是extension的典型应用)。


第三层:Sapi,Sapi全称是Server Application Programming Interface,也就是服务端应用编程接口,sapi通过一系列钩子函数,使得php可以和外围交互数据,这是php非常优雅和成功的一个设计,通过sapi成功的将php本身和上层应用解耦隔离,php可以不再考虑如何针对不同应用进行兼容,而应用本身也可以针对自己的特点实现不同的处理方式


第四层:上层应用,上层应用这就是我们平时编写的php程序,通过不同的sapi方式得到各种各样的应用模式


2,深入分析lamp环境

①liunx 属于操作系统的底层

②apache服务器,属于次服务器,沟通linux和PHP

③php:属于服务端编程语言,通过php_module 模块 和apache关联

④mysql和其他web服务:属于应用服务,通过PHP的Extensions外 挂模块和mysql关联


3,深入理解计算机硬件和lamp的理解

CPU是工厂,硬盘是大仓库,内存是正规中转中心,虚拟内存是临时中转中心 

Php语言由zend编译成机器语言,操作cpu

对数据库的操作属于I/O操作,属于机械运动,也就是说一个网站的瓶颈再去对硬盘的读写造成的,解决办法就是减少i/o操作次数,使用缓冲技术,就是在数据的操作放在mencache里面,达到一定数量级的时候在一次性写入数据库,mencache属于key--value关系

而非关系型数据也是基于这个理念建设的,也是属于key--value关系

频繁读操作------放在mencache里面

读多写少----放在nosql里面------读取功能很强大!



0 0
原创粉丝点击