请教一个apache内存的算法
比如在php.ini里设置:memory_limit = 512M //最大内存
memory = 16M // 单页面最大内存
现在比如有一个a.php<?php
include(b.php);// 或者 require(b.php);  b.php为一个空页面
echo (memory_get_usage(true)/1024).'KB';
?>打印出来 784KB。那么apache真的只消耗了784KB的内存吗?
可实际上,ps -auxf | sort -nr -k 4 | head -10 一个php文件在linux里真的只消耗784KB吗?(返回的值远大于784,是不是memory = 16M,单个httpd就需要消耗16MB?)另外,include或者require一个文件,是不是相对于消耗掉2个httpd进程?

解决方案 »

  1.   

    memory_get_usage -- Returns the amount of memory allocated to PHP
    返回分配给PHP的内存量
      

  2.   

    (另外,include或者require一个文件,是不是相对于消耗掉2个httpd进程?)
    算一个进程,要区分线程和进程的定义。
      

  3.   

    那么memory_get_usage指的是分配给PHP的内存量,并不是指httpd执行所消耗的内存量了?
      

  4.   

    是的!
    apache(或其他web服务器)只是响应http请求,启动并等待php的完成
    apache的内存消耗量至于并发响应http请求的数量有关
      

  5.   


    那么linux里一个http进程,比如说显示12M,实际上包括php,js,css文件,是不是就是一个PHP页面打开时,客户端从服务器端下载的所有文件大小?