小编Mir*_*hko的帖子

memory_get_peak_usage与实际php进程的内存使用量之间的差异

为什么php memory_get_peak_usage的结果与在Linux中使用'top'或'ps'命令时显示为已分配给进程的内存大小有很大差异?

我在php.ini中设置了2 Mb的memory_limit我的单字符串php脚本

echo memory_get_peak_usage(true);
Run Code Online (Sandbox Code Playgroud)

说它使用的是786432字节(768 Kb)

如果我尝试询问系统当前的php进程

echo shell_exec('ps -p '.getmypid().' -Fl');
Run Code Online (Sandbox Code Playgroud)

它给了我

F S UID        PID  PPID  C PRI  NI ADDR SZ WCHAN    RSS PSR STIME TTY          TIME CMD
5 S www-data 14599 14593  0  80   0 - 51322 pipe_w  6976   2 18:53 ?        00:00:00 php-fpm: pool www                                      
Run Code Online (Sandbox Code Playgroud)

RSS参数是6976,因此内存使用量为6976*4096 = 28573696 = ~28 Mb

哪个28 Mb来自哪里有什么方法可以减少php-fpm进程使用的内存大小?

php memory-management

5
推荐指数
2
解决办法
4242
查看次数

标签 统计

memory-management ×1

php ×1