2013-01-17 180 views
2

我建立了一个php哈希系统,我很迷惑脚本的速度性能。 我对不同数量的请求做了脚本的基准测试(速度只适用于其他没有涉及的脚本)。php哈希密码性能

10个请求:0.001秒

100请求:0.011秒

1000个请求:0.073秒

10000个请求:0.667秒

100000个请求:6.776秒

后100万台服务器返回空白屏幕

我的困惑:

如果有1000个用户同时尝试登录,那么每个用户的密码输入需要0.00001秒才能进行散列和检查,而不是每个用户的原始或0.073秒?

benM这是基准脚本:

function test() 
{ 
    global $result; 
    ob_start(); 
    $x = microtime(true); 

    while($i < 10000) 
    { 
     print // here you add whatever you want to test; 
     ++$i; 
    } 

    $temp = microtime(true) - $x; 
    ob_end_clean(); 
    return $temp; 
} 
echo number_format(test(), 3); 
+3

你是如何基准测试的?如果它是在一个请求到服务器,你不必担心。 0.00001秒对于单个请求是正确的。每个登录本质上是一个单独的连接,因此请求。服务器应该管理它,就好像它是一个单一的请求(很难解释,但希望这是有道理的)。 – BenM

+2

今天的服务器是多线程的。今天的机器有多个内核。这很好地结合在一起。你很担心这样的事情。不成熟的优化是万恶之源。 – vanneto

+0

重新返回空白百万 - 它触发PHP超时?您可以在php.ini/htaccess或程序中设置超时值。 – SDC

回答

1

你已经使用的基准脚本是不理想的,因为它测试他们在一个单一的请求。您不必担心这一点,因为IRL,任何用户都不会在一次请求中登录1000次!

+0

谢谢你的回答,我很困惑,因为我试图建立一个哈希的金字塔,我刚开始,进度约为10%,如果我在正确的道路上,我想完成它之前我想知道 – lesandru