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

评论 (写第一个评论)