- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我决定查看分配给我的一些 PHP 脚本的内存量,发现它的峰值约为 130KiB。考虑到脚本中发生的事情,我认为还不错。
然后,我决定看看脚本是从哪里开始的。我预计大约 32KiB。
我得到的是 121952 字节。之后,我尝试测试一个完全没有脚本的脚本:
<?php
echo memory_get_usage();
它也是从分配相同数量的内存开始的。
现在,很明显,PHP 将在脚本运行之前为脚本分配一些内存,但这似乎有点过分。
但是,根据当时系统可用的内存量,它似乎根本不是动态的。我尝试通过打开其他进程来消耗更多系统内存,但预分配的内存量保持相同的字节数。
这是否可以在每个脚本的基础上进行配置,PHP 如何确定它将为每个脚本分配多少?
Using PHP Version 5.4.7
谢谢。
最佳答案
memory_get_usage
函数直接查询 PHP 的内存分配器以获取此信息。它报告 PHP 本身使用了多少内存,而不是整个进程甚至整个系统使用了多少内存。
如果您不传入额外的 true
参数,您返回的是您的代码使用的确切内存量;这永远不会超过 memory_get_usage(true)
报告的内容。
如果您确实调用了memory_get_usage(true)
,您将从系统中取回分配器保留的堆的大小,其中包括您的代码实际未使用但直接使用的内存可用于您的代码。
当您的脚本需要的内存比分配器可用的内存多时,分配器将从操作系统中保留另一大块内存,您会看到 memory_get_usage(true)
急剧上升,而 memory_get_usage()
可能只会增加几个字节。
分配器用于决定何时分配多少内存的确切策略在编译时被写入 PHP;您必须编辑源代码并编译 PHP 才能更改此行为。
关于空 PHP 脚本上的 PHP memory_get_usage(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14260517/
有人可以阐明 memory_get_usage() 的 $real_usage 参数的确切区别是什么吗? manual状态: Set this to TRUE to get the real size
我遇到了 PHP 的 memory_get_usage() 和 memory_get_peak_usage()。 问题是我发现这两个函数没有提供当前脚本使用的真实内存。我的测试脚本是: '; $a =
下面是使用示例: 复制代码代码如下: <?php echo memory_get_usage(), '<br />'; // 313864
我正在尝试获取 PHP 中变量的实际大小(内存使用量)。我知道没有直接的方法来实现这一点,但有一个使用 memory_get_usage() 的简单“hack”。 '; $s = memory_get
下面是PHP memory_get_usage()使用示例: 复制代码代码如下: echo memory_get_usage(), '<br />'; //143952
我的 PHP 应用程序运行速度有点慢,目前它的内存效率不是很高。我的整个服务器经常宕机,我想我应该怪这个应用程序。我想我会监控内存使用情况并检查我有多少限制: echo 'Memory in use:
我决定查看分配给我的一些 PHP 脚本的内存量,发现它的峰值约为 130KiB。考虑到脚本中发生的事情,我认为还不错。 然后,我决定看看脚本是从哪里开始的。我预计大约 32KiB。 我得到的是 121
我决定查看分配给我的一些 PHP 脚本的内存量,发现它的峰值约为 130KiB。考虑到脚本中发生的事情,我认为还不错。 然后,我决定看看脚本是从哪里开始的。我预计大约 32KiB。 我得到的是 121
我已经 found the following question ,但我想知道是否有一种更快更脏的方法来估计python解释器当前为我的脚本使用了多少内存,而不依赖于外部库。 我来自 PHP,曾经使用
我有一个使用 AWS Dynamo PHP API 用 PHP 编写的脚本。它运行一个很长的循环,从发电机中提取大量数据,然后对其进行处理。 当我使用“top”查看进程时,我可以看到“php”进程使用
PHP 有函数 memory_get_usage 来报告 PHP 脚本拥有的内存量。如何在 .NET (ASP.NET C#) 中做同样的事情? 此外,您能否报告一个对象(例如 SiteMap 或 D
我是一名优秀的程序员,十分优秀!