请看以下示例代码:
<?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 编译了文件的方式?
brown_corpus
包含许多键值对的返回数组。因此,这可以解释为什么在需要时会消耗更多的字节进入内存。我想知道使用数据库查询是否更好,但脚本肯定需要更长时间才能运行,但是占用的内存会更少。很快就会给出奖励... - Luka