对phpseclib中的递归rawlist请求响应缓慢

时间:2015-02-13 15:02:43

标签: phpseclib

我编写了一个PHP程序,它在具有许多(大约1000个)目录的远程服务器上执行rawlist功能。 phpseclib SFTP rawlist方法有效,但遍历服务器上的目录树需要12分钟。另一方面,普通的旧FTP原始列表函数(ftp_rawlist)在大约30秒内返回相同的结果。

据我所知,SSH连接会因加密而增加开销,但这似乎过多了。我在Windows Server 2012和Windows 7上运行的PHP 5.3和5.4系统具有相同的SFTP结果。两个安装都启用了mcrypt和gmp。

以下是我一直在测试的程序的基本版本:

<?php
  set_include_path(get_include_path() . PATH_SEPARATOR . 'C:/path-to/phpseclib');

  include 'Crypt/RSA.php';
  include 'Net/SFTP.php';

  $rsa = new Crypt_RSA();
  $priKey = file_get_contents('C:/path-to/my_private_key.ppk');
  $rsa->loadKey($priKey);

  $sftp = new Net_SFTP('my_ssh_server_URI', 22);
  if (!$sftp->login('my_user_id', $rsa)) {
    exit("Login Failed\n");
  }

  print_r($sftp->rawlist('starting_directory', true));
?>

我只是想知道是否有人遇到与SFTP相同的问题&#34; _list&#34;方法并提出改进性能的解决方法。谢谢。

0 个答案:

没有答案