【问题标题】:session_start() function is very slower on HHVM than php5 or php7session_start() 函数在 HHVM 上比 php5 或 php7 慢得多
【发布时间】:2017-11-14 15:23:47
【问题描述】:

对于这个简单的代码:

<?php
$time_start = microtime(true);

session_start();
echo session_id();

$time_end = microtime(true);
$time = ($time_end - $time_start)*1000;
echo "<br> Time to get uid: $time milliseconds";

?>

当我使用 Apache 服务器在 php7 或 php5 中运行它时,运行时间约为 1 毫秒,但我的带有 HHVM 的机器需要 60-100 毫秒才能执行此操作。我尝试将处理程序更改为 Redis 而不是文件,但时间超过 100 毫秒。我也尝试删除所有其他会话,相同。有什么想法吗?

【问题讨论】:

  • 单次运行是没有意义的,在肮脏的环境中运行也是没有意义的。将相同的干净机器设置为测试平台,然后至少运行 1000 次测试。
  • 我用上面的代码不断刷新页面,结果相似。然后我不断刷新其他机器上的代码并获得不同的性能时间;差别很大,大于 100 毫秒与小于 1 毫秒!

标签: php session performance-testing hhvm php-7.1


【解决方案1】:

我发现了问题所在。在我自己的系统中,较长的时间是由于我在会话中保存的大量变量,而其他系统中的新会话以空会话开始。

为了将来参考,session_start() 运行时取决于系统需要加载的变量并使它们作为会话可用;因此,如果您在 php 代码中使用会话,那么您在会话中放置的数据越少,您的整体页面速度就会越快。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-28
    • 2012-11-06
    • 2014-02-24
    • 2019-07-05
    • 2016-06-20
    相关资源
    最近更新 更多