gpt4 book ai didi

php - 如何使用 HHVM 改善较差的阵列性能?

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:02:52 25 4
gpt4 key购买 nike

我正在尝试对 php 5.5 与 HHVM 进行一些基准测试,并使用 hhvm 获得了一些相当不错的结果。然而,冒泡排序在 HHVM 上的性能非常糟糕。我猜它与数组有关。在下面的示例中,当 q=1000 时,hhvm 几乎比 php 5.5 差 5 倍。因为在这两种情况下,因为测试运行了很多次,所以我认为预热时间不应该是一个问题。在这两种情况下,它们都是 fastcgi 模式。在 q=1000 的情况下,php5.5 需要大约 200 毫秒来为页面提供服务,而 hhvm 则需要将近 1000 毫秒。我尝试使用 splfixedclass,但它在 hhvm 上的性能也很差。是否有特殊类或一些特殊选项可以提高 hhvm 中的数组性能?

我在这里解释了我到底做了什么: http://letschat.info/php-5-5-vs-hhvm-vs-node-js-benchmark-part-2/

$starttime = microtime(true);

if($_GET['q']!=""){
$count = $_GET['q'];
} else {
$count = 100;

}

function getRandom(){
$random = array();
global $count;

for($i=0;$i<$count;$i++){
$random[]=rand(1,100);
}
return $random;
}

$array = getRandom();

for($i=0;$i<10;$i++) {
#$i=0;
//while ($i<$a) {

$a = count($array);
$b=$a-1;

for($j=0; $j < $a; $j++){
for ($k=0;$k<$b;$k++) {
if ($array[$k+1] < $array[$k]) {
$t = $array[$k];
$array[$k] = $array[$k+1];
$array[$k+1] = $t;
}
}

//++$i;
}
$array[$count/2]=rand(1,100);

}
print_r($array);
echo microtime(true) - $starttime;

最佳答案

一个问题和一个可能的问题:

  • 将所有代码放在一个函数中。我们不 JIT 伪主程序(主体中的代码)。
  • 在 Web 请求中运行代码,或者如果您正在执行命令行,请使用 -v Eval.Jit=true。我们禁用脚本的 JITting,因为它们通常不会运行很长时间,而且预热成本高于运行时成本。

.

function main() {
// Do everything
}
main();

关于php - 如何使用 HHVM 改善较差的阵列性能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20859304/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com