require
require_once
include
include_once
curl
file_get_contents
---各类选择的比较php
还有这么复杂的说法,怎么办?
api
在开发过程当中发现,用require来加载一个很大(几百K,甚至几兆)的配置文件时,会形成响应超时。若是把这个配置文件的内容序列化后,用file_get_contents获取文件而后反序列化的方法来加载,就会快不少。curl
通过近两周的研究,大概知道了其中的缘由。函数
首先,还从PHP的流程提及,PHP其实有两个流程,一个是启动的流程,一个是响应请求的流程。PHP做为Apache的一个模块,向Apache注册了两个函数,一个是Aapche启动的时候运行的函数:sapi_startup;一个是Apache接收到请求的时候调用的函数:php_handlerui
启动的流程:url
Apache启动 code
-> sapi_startup开发
-> php_module_startup (PHP启动总开关)get
-> zend_startup (启动Zend引擎,包括初始化全局变量,初始化 compile 和 execute 函数编译器
相应请求的流程:
Apache收到请求
-> sapi_startup
-> zend_activate (包括初始化编译器、初始化执行器、启动扫描器)
-> zend_compiler (语法分析、语意分析、生成opcode)
-> zend_execute (执行每一个opcode)
-> zend_deactive(清理本次请求用到的数据)