Использование Ruby 1.9.3p0
Ниже приведен мой ruby-скрипт для отображения из моей учетной записи GMail имени всех папок и количества сообщений в каждом почтовом ящике.
Ruby Script
ENV['SSL_CERT_FILE']='/etc/ssl/certs/cacert.pem'
begin_ = Time.now
require 'net/imap'
server='imap.gmail.com'
port = 993
username = '<MY-GMAIL-USER-ID>'
password = '<MY-PASSWORD>'
imap = Net::IMAP.new(server,port,true)
imap.login(username, password)
list = imap.list("", "*")
puts "Gathering Data"
folders_count_hash = Hash[ list.map do |a|
[a.name, imap.status(a.name, ["MESSAGES"])["MESSAGES"]] unless a.name == "[Gmail]"
end ]
total_time = Time.now - begin_
puts "Gathered Data"
puts "Total Folders :#{folders_count_hash.size}"
puts "RUNTIME: #{total_time}"
folders_count_hash.each do |name, count|
puts "#{name} (#{count})"
end
imap.logout()
imap.disconnect()
Вывод вышеуказанного скрипта:
Gathering Data
Gathered Data
Total Folders :193
RUNTIME: 189.38250329
Как видно из значения RUNTIME выводасбор данных занял 3 минуты.
Мне нужно понять, в чем причина такого медленного поведения.Это из-за большого количества папок в моей учетной записи, из-за скорости сети или из-за того, что GMail возвращал ответ?
Можно ли уменьшить эту задержку?Если да, то как я могу добиться того же.
Спасибо,
Jignesh