diff options
author | Michael Lenaghan <michaell@dazzit.com> | 2014-10-24 17:56:49 -0400 |
---|---|---|
committer | Michael Lenaghan <michaell@dazzit.com> | 2014-10-24 20:33:20 -0400 |
commit | ec1da36eaf2adfb5695f5c0d8ca92d23d31b56a5 (patch) | |
tree | 3c57763f4b3fe597a0d28f70d3634b36542dc663 /src/cmake | |
parent | d0b53a64bdbeaa71d80210640534abea1a85f8d2 (diff) |
Add an operation to fetch a parsed message.
This avoids the copying of Data to NSData to Data which happens with the current approach. In one test case, a message with an ~18 MB attachment, the current (copying) approach peaked at ~150 MB of memory usage in my app. This new approach peaks at ~65 MB. Another test case, which often caused iOS to terminate my app, now peaks at ~90 MB. In addition to the improved memory usage this approach also means that message parsing is performed asynchronously.
Diffstat (limited to 'src/cmake')
-rw-r--r-- | src/cmake/async.cmake | 1 | ||||
-rw-r--r-- | src/cmake/objc.cmake | 3 | ||||
-rw-r--r-- | src/cmake/public-headers.cmake | 2 |
3 files changed, 5 insertions, 1 deletions
diff --git a/src/cmake/async.cmake b/src/cmake/async.cmake index 58f410d4..947a69ee 100644 --- a/src/cmake/async.cmake +++ b/src/cmake/async.cmake @@ -13,6 +13,7 @@ set(async_imap_files async/imap/MCIMAPDisconnectOperation.cc async/imap/MCIMAPExpungeOperation.cc async/imap/MCIMAPFetchContentOperation.cc + async/imap/MCIMAPFetchParsedContentOperation.cc async/imap/MCIMAPFetchFoldersOperation.cc async/imap/MCIMAPFetchMessagesOperation.cc async/imap/MCIMAPFetchNamespaceOperation.cc diff --git a/src/cmake/objc.cmake b/src/cmake/objc.cmake index de4d8d06..cdf09dd6 100644 --- a/src/cmake/objc.cmake +++ b/src/cmake/objc.cmake @@ -16,6 +16,7 @@ set(objc_imap_files objc/imap/MCOIMAPCapabilityOperation.mm objc/imap/MCOIMAPCopyMessagesOperation.mm objc/imap/MCOIMAPFetchContentOperation.mm + objc/imap/MCOIMAPFetchParsedContentOperation.mm objc/imap/MCOIMAPFetchFoldersOperation.mm objc/imap/MCOIMAPFetchMessagesOperation.mm objc/imap/MCOIMAPFetchNamespaceOperation.mm @@ -84,7 +85,7 @@ set(objc_nntp_files objc/nntp/MCONNTPFetchOverviewOperation.mm objc/nntp/MCONNTPFetchServerTimeOperation.mm objc/nntp/MCONNTPOperation.mm - objc/nntp/MCONNTPSession.mm + objc/nntp/MCONNTPSession.mm ) set(objc_utils_files diff --git a/src/cmake/public-headers.cmake b/src/cmake/public-headers.cmake index 8b55c15e..65be3be7 100644 --- a/src/cmake/public-headers.cmake +++ b/src/cmake/public-headers.cmake @@ -86,6 +86,7 @@ async/imap/MCIMAPAppendMessageOperation.h async/imap/MCIMAPCopyMessagesOperation.h async/imap/MCIMAPFetchMessagesOperation.h async/imap/MCIMAPFetchContentOperation.h +async/imap/MCIMAPFetchParsedContentOperation.h async/imap/MCIMAPIdleOperation.h async/imap/MCIMAPFolderInfoOperation.h async/imap/MCIMAPFolderStatusOperation.h @@ -160,6 +161,7 @@ objc/imap/MCOIMAPAppendMessageOperation.h objc/imap/MCOIMAPCopyMessagesOperation.h objc/imap/MCOIMAPFetchMessagesOperation.h objc/imap/MCOIMAPFetchContentOperation.h +objc/imap/MCOIMAPFetchParsedContentOperation.h objc/imap/MCOIMAPSearchOperation.h objc/imap/MCOIMAPIdleOperation.h objc/imap/MCOIMAPFetchNamespaceOperation.h |