压缩值得使用吗?

2024-06-16 09:11:42 发布

您现在位置:Python中文网/ 问答频道 /正文

Gmail支持IMAP压缩扩展(RFC4978),特别是DEFLATE algorithmRFC1951)即zlib/gzip。在

我通常不是Python程序员,但我使用Piers Lauder's imaplib2组合了一个快速测试脚本,以确定启用或不启用压缩的性能。在

from time import time
import imaplib2, string

def cb((response, cb_arg, error)):
        typ, data = response
        #print 'Message %s\n%s\n' % (cb_arg, data[0][5])

IMAP_SERVER='imap.gmail.com'
IMAP_PORT=993
IMAP_USERNAME='*********'
IMAP_PASSWORD='*********'

def gogmail(compress):
    start = time()
    M = imaplib2.IMAP4_SSL(IMAP_SERVER, IMAP_PORT, debug=0)
    M.login(IMAP_USERNAME, IMAP_PASSWORD)
    if(compress):
        M.enable_compression()
    M.SELECT(readonly=True)
    typ, data = M.SEARCH(None, 'ALL')
    fetch_list = string.split(data[0])[-100:]
    for num in fetch_list:
        M.FETCH(num, '(RFC822)', callback=cb, cb_arg=num)   
    M.LOGOUT()
    end = time()
    print end - start

print 'Compressed  '
print '------------'

for x in range(0, 50):
    gogmail(1)

print 'Uncompressed'
print '------------'

for x in range(0, 50):
    gogmail(0)

如果我在Python代码中犯了一个明显的新手错误,请纠正我。

我已经运行了几次这个测试脚本。有时,压缩访问的平均速度更快,有时不是。平均平均值没有太大的差异,访问时间也有很大的变化(一次100封邮件的收件箱访问可能需要4到17秒)。一致的结果会让我的决定更容易!访问是通过SSL的,我在想也许这里面有一些固有的压缩(我不知道)。在

您认为访问gmailimap时使用压缩是否值得?

顺便说一下,我想使用JavaMail(而不是Python),但是我知道我需要大量定制JavaMail来支持压缩(可能使用Jessie)。有人已经这么做了吗?值得吗?在

我很感激你的反馈。非常感谢。在


Tags: inimport脚本fordatastringtimedef
1条回答
网友
1楼 · 发布于 2024-06-16 09:11:42

我不认为启用压缩会有很大的区别,因为100条消息是一个非常小的数据量。假设一条消息是1KB(一条长明文消息),那么您的收件箱是100KB。假设压缩比为5:1(这在最好的情况下不太可能),因此压缩后的下载现在是20KB。在

现在任何一个正常的互联网连接速度至少是1Mbps,或者说125KB/s,所以在这种高估的假设下,你可以节省一秒钟的数据传输成本。与gmail的连接延迟和处理过程相比,这是相形见绌的。在

另一方面,启用压缩会损失什么?在

相关问题 更多 >