由于打算机的内存由操作系统进行管理,以是普通运用程序是无法直接对内存进行访问的。
运用程序只能向操作系统申请内存,常日的运用也是这么做的,在须要的时候通过类似malloc之类的库函数 向操作系统申请内存。
在一些对性能哀求较高的运用处景下是须要频繁的利用和开释内存的, 比如Web做事器,编程措辞等,由于向操作系统申请内存空间会引发系统调用, 系统调用和普通的运用层函数调用性能差别非常大,由于系统调用会将CPU从用户态切换到内核, 由于涉及到物理内存的操作,只有操作系统才能进行,而这种切换的本钱是非常大的, 如果频繁的在内核态和用户态之间切换会产生性能问题。
鉴于系统调用的开销,一些对性能有哀求的运用常日会自己在用户态进行内存管理, 例如第一次申请稍大的内存留着备用,而利用完开释的内存并不是立时归还给操作系统, 可以将内存进行复用,这样可以避免多次的内存申请和开释所带来的性能花费。
PHP不须要显式的对内存进行管理,这些事情都由Zend引擎进行管理了。PHP内部有一个内存管理体系, 它会自动将不再利用的内存垃圾进行开释。
二、php中查看与设置内存的干系参数与函数
配置内存大小:
(1)php.ini中可以变动配置memory_limit = 32M
(2)若环境中没有禁用ini_set()函数,可以通过此函数设置:ini_set(\"大众memory_limit\"大众, \"大众128M\"大众);
查看内存情形:
(1)memory_get_usage(),这个函数的浸染是获取 目前PHP脚本所用的内存大小。
(2)memory_get_peak_usage(),这个函数的浸染返回 当前脚本到目前位置所占用的内存峰值,这样就可能获取到目前的脚本的内存需求情形。