2017-06-13 62 views
2

很慢這個簡單的代碼:session_start()函數是HHVM比PHP5以上PHP7

<?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"; 

?> 

當我PHP7或PHP5與Apache服務器運行,運行時間是大約一毫秒,但在我的機器與HHVM需要60-100毫秒執行此操作。我嘗試將處理程序更改爲Redis而不是文件,但獲得了超過100毫秒的時間。我也嘗試刪除所有其他會話,相同。任何想法?

+1

單次運行毫無意義,並且在骯髒的環境中運行也沒有意義。將相同的乾淨機器設置爲測試臺,然後將測試運行至少1000次。 – Sammitch

+0

我一直用上面的代碼刷新頁面,結果很相似。然後,我不斷刷新其他機器上的代碼,並獲得不同的性能時間;差異很大,超過100ms而不到1ms! – Ben

回答

0

我想出了這個問題。在我自己的系統中,更長的時間是由於我在會話中保存了大量變量,而其他系統中的新會話是以空會話開始的。

爲了將來的參考,session_start()運行時間取決於系統需要加載的變量並使它們可用作會話;因此,如果您在php代碼中使用會話,則會話中加入的數據越少,整體頁面速度就越快。