2012-03-27 71 views
2

使用紅寶石1.9.3p0紅寶石1.9.3 - 網:: IMAP列表和狀態的方法響應速度很慢

下面是我的Ruby腳本顯示,從我的Gmail帳戶,所有文件夾 名和消息在每個郵箱中計數。

的Ruby腳本

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 

由於可以從輸出的運行時值花了3分鐘,以收集數據可以看出。

我需要理解這種緩慢行爲背後的原因。 這是因爲我帳戶中有很多文件夾,或者是由於網絡速度或GMail的結束返回響應?

這個延遲可以減少嗎?如果是的話,那我怎麼能達到同樣的效果。

感謝,

Jignesh

+0

有一個非常類似的問題... – sethvargo 2012-04-09 17:00:58

+0

嘗試遠程登錄(OpenSSL的爲gmail) 的OpenSSL的s_client.First -connect imap.gmail.com:993 X登錄 X名單 「」, 「*」 X註銷 – 2012-07-19 08:40:35

回答

0

我運行的代碼,並獲得了11秒的反應,但我只有39頁的文件夾。