4.4 测试php函数的查找性能
用于观察drupal的模块多少对性能的影响,模块多少直接影响钩子函数的查找次数,函数查找速度影响性能
注意模块多少对整体性能的影响中,钩子只是其中一项:
<?php
$php = "<?php\r\n";
for ($i = 0; $i < 10000; $i++) {
$function_name = "f" . bin2hex(random_bytes(16));
$php .= 'function ' . $function_name . '($msg){echo $msg;}' . "\r\n";
}
file_put_contents("yunke.php", $php);
include ("yunke.php");
$hooks = [];
for ($i = 0; $i < 10000; $i++) {
$hooks[] = "f" . bin2hex(random_bytes(16));
}
$start_time = microtime(TRUE);
foreach ($hooks as $hook) {
if (function_exists($hook)) {
echo "$hook exists<br>";
}
}
$end_time=microtime(TRUE);
echo "$start_time<br>$end_time<br>time:<br>";
echo $end_time - $start_time;
测试结果:
加载一万个随机命名的函数,查找一万个随机函数名的时间消耗不到2毫秒,影响微乎其微,可以认为drupal的钩子查找并不影响性能
测试机器配置:
cpu:英特i5-7200U
内存:8G
系统:win10