几周前,我编写了一个简单的 Ruby 脚本来测试 Windows XP 环境中的几个 FTP 命令。一切都按预期工作,我什至不知道代码运行所花费的时间(我猜最多 3-4 秒。)
几天前,我正在开发的一个复杂得多的 Ruby 应用程序开始运行非常缓慢。当我调查这个问题时,我将问题隔离到 FTP 命令。我现在重新运行了原始测试脚本,它需要两 分钟 才能运行。命令行 FTP 基本上是即时的。
ruby 目录结构中的文件没有被更改。我认为没有安装任何新的应用程序 - 当然没有其他应用程序似乎正在运行。
谁能建议为什么下面的代码运行得这么慢?手动计时 print
语句之间的间隔表明 nlst
和 ls
各需要大约 65 秒!探查器为 nlst
和 ls
给出了 16 毫秒/调用和 31 毫秒/调用的可信度。
require 'net/ftp'
Net::FTP.open("ip_redacted", "user_redacted", "password_redacted") do |ftp|
ftp.chdir("dir_redacted")
files = ftp.nlst
print "files = #{files.sort!}\n"
list = ftp.ls
print "list = #{list}\n"
file = "filename_redacted"
size = ftp.size(file)
print "size = #{size}\n"
end
最佳答案
关于windows - Ruby FTP 在 Windows XP 下非常慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/874316/