Home  >  Article  >  Backend Development  >  PHP memory_get_usage 和 memory_get_peak_usage区别

PHP memory_get_usage 和 memory_get_peak_usage区别

WBOY
WBOYOriginal
2016-06-23 14:30:233284browse

在使用linux命令 ps 或 top 命令查看进程时, 能看到内存消耗的百分比和大小, 此处的大小是与 memory_get_peak_usage  相一致的

而方法memory_get_usage 是指当前脚本正在使用的内存

参考 http://us2.php.net/manual/en/function.memory-get-peak-usage.php

 

一个是系统分配的内存, 另外一个是内存当前使用的内存, 举例说明:

1, 数据库读出来千万条数据,假如说需要消耗100MB,那么系统会分配给进程 100MB

2, 当处理完数据后 unset 掉, 其实当前进程的消耗的内存并不会变小, 即不会释放100MB空间

3, 内存被分划为, "已使用" 和 "空闲", unset 只会把 "已使用" 变为 "空闲", 下次内存请求时会先去"空闲"里取

4, 程序结束, GC 才会释放全部内存

 

unset后可以让 memory_get_peak_usage 不继续升高, 程序执行被分配的内存(进程里的内存)仍然要以 memory_get_peak_usage  为准

 

更多

a) 另外可以参考 标题:深入探讨PHP中的内存管理问题 了解更多PHP内存管理

b) PDO statement->execute() 时就已经将结果集放在内在里了。

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Previous article:PHP 符号大全Next article:php的array_multisort()使用