2017-09-18 228 views
-1

我注意到我的代碼運行速度很慢。所以我做了一個緩衝流來找出它使用echo和數字的地方。獲得回聲3非常快,但回聲3回聲4需要幾秒鐘。我刪除了所有的代碼,離開一個SSH con和ANSIPHPSECLIB Ansi非常慢

include('Net/SSH2.php'); 
include('File/ANSI.php'); 
$ssh = new Net_SSH2($HostName, $Port); 
if (!$ssh->login($ADID, $UnixPass)) { 
exit('Login Failed'); 
} 
ob_implicit_flush(); 
$ansi = new File_ANSI(); 
echo "3"; 
@$ansi->appendString($ssh->read()); 
echo @$ansi->getScreen(); 
echo "4"; 

任何想法如何提高性能?

回答

1

$ssh->read()沒有任何參數時,它只會讀取直到它達到超時(默認爲10秒)。存在兩種解決方案:

  1. $ssh->read('[email protected]:~$');,改變[email protected]:~$出來提示。
  2. $ssh->setTimeout(2);。例如。將超時設置爲小於您所得到的值。像2秒鐘或什麼東西idk
+0

這正是我需要和剃了很多時間。是否有可能做一些像讀('用戶名@用戶名:〜$'||'用戶名@用戶名:〜>')? – MoonEater916

+0

@ MoonEater916 - ''ssh-> read('#username @ username:〜\ $ | username @ username:〜>#',NET_SSH2_READ_REGEX)'應該這樣做。 – neubert

+0

'$ ssh-> read('#username @ username:〜[\ $>]#',NET_SSH2_READ_REGEX)'會更加簡潔。 – neubert