Gmail поддерживает расширение IMAP COMPRESS ( RFC4978 ), в частности алгоритм DEFLATE ( RFC1951 ) aka zlib / gzip.
Обычно я не программист на Python, но я написал сценарий быстрого тестирования, используя 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. Я подумал, что, возможно, в этом есть некоторое сжатие (я не знаю).
Как вы думаете, стоит ли использовать сжатие при доступе к Gmail IMAP?
Кстати, я хотел бы использовать JavaMail (а не Python), но я понимаю, что мне нужно было бы значительно настроить JavaMail для поддержки сжатия (возможно, с использованием Jessie ).Кто-нибудь уже сделал это?Это стоило бы?
Я ценю обратную связь.Большое спасибо.