【发布时间】:2018-11-24 17:33:55
【问题描述】:
以给定的示例代码为例:
<?php
if (! function_exists('human_filesize')) {
function human_filesize($size, $precision = 2, $step = 1000)
{
$i = 0;
$units = ['B', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'];
while (($size / $step) > 0.9) {
$size = $size / $step;
$i++;
}
return round($size, $precision) . ' ' . $units[$i];
}
}
if (! function_exists('dd')) {
function dd($vars)
{
foreach (func_get_args() as $var) {
var_dump($var);
}
die();
}
}
$start = microtime(true);
$usage = memory_get_usage(true);
require "brown_corpus.php"; // It's 1.6 MB
$dump[] = round(microtime(true) - $start, 3);
$dump[] = human_filesize(memory_get_usage(true) - $usage);
dd(...$dump); // 0.063ms to run | 38.01 MB memory used
brown_corpus.php 是 1.6 MB,但是当需要时,脚本告诉我它正在使用 38.01 MB 的内存。我一直在阅读,我想知道这是否是因为 PHP 将所需的文件编译成操作码,以便更快地执行?有人可以启发一下这方面的利弊吗...即,如果我继续在该要求的数组中搜索键,现在是否更快 - 因为 PHP 编译文件的方式?
【问题讨论】:
标签: php memory memory-management