docker-offlineimap/offlineimap/folder
John Goerzen 0841e03a4c [319117] Unroll loop to speed performance on large folders
From: "Nikita V. Youshchenko"
I trued to use offlineimap and found that while being quite fast on
small folders, it takes up to several minutes (of 100% busy CPU and
almost no network traffic) to sync a folder with 2000+ messages.

While looking into the code, I found why this happens.
In folder/Base.py, in method BaseFolder.syncmessagesto_copy(),
dest.getmessagelist() is called inside a loop, while being a loop
invariant. Similar thing happens in BaseFolder.syncmessagesto_delete()
for self.getmessagelist().
This causes quadratic complexity over folder size.

Moving these calls out of loops make large folder sync fast (several
seconds instead of several minutes for folder with 2000 messages on
700MHz P3).
2005-08-23 08:15:09 +01:00
..
__init__.py Step 2 of SVN to arch tree conversion 2005-04-16 20:33:35 +01:00
Base.py [319117] Unroll loop to speed performance on large folders 2005-08-23 08:15:09 +01:00
IMAP.py Added code to limit command line length for very large mailboxes 2004-11-16 23:41:09 +01:00
LocalStatus.py Step 2 of SVN to arch tree conversion 2005-04-16 20:33:35 +01:00
Maildir.py Step 2 of SVN to arch tree conversion 2005-04-16 20:33:35 +01:00
UIDMaps.py Initial base-0 from arch 2005-04-16 20:35:25 +01:00