diff --git a/SignalServiceKit/src/Messages/OWSBatchMessageProcessor.m b/SignalServiceKit/src/Messages/OWSBatchMessageProcessor.m index 5fe505c7b..5d4f4673e 100644 --- a/SignalServiceKit/src/Messages/OWSBatchMessageProcessor.m +++ b/SignalServiceKit/src/Messages/OWSBatchMessageProcessor.m @@ -317,6 +317,9 @@ NSString *const OWSMessageContentJobFinderExtensionGroup = @"OWSMessageContentJo { AssertOnDispatchQueue(self.serialQueue); + // We want a value that is just high enough to yield perf benefits. + const NSUInteger kIncomingMessageBatchSize = 32; + NSArray *jobs = [self.finder nextJobsForBatchSize:kIncomingMessageBatchSize]; OWSAssert(jobs); if (jobs.count < 1) { @@ -338,7 +341,7 @@ NSString *const OWSMessageContentJobFinderExtensionGroup = @"OWSMessageContentJo // This delay won't affect the first message to arrive when this queue is idle, // so by definition we're receiving more than one message and can benefit from // batching. - dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.1f * NSEC_PER_SEC)), self.serialQueue, ^{ + dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.5f * NSEC_PER_SEC)), self.serialQueue, ^{ [self drainQueueWorkStep]; }); } diff --git a/SignalServiceKit/src/Messages/OWSMessageHandler.h b/SignalServiceKit/src/Messages/OWSMessageHandler.h index 28534c0e3..cb8967b5b 100644 --- a/SignalServiceKit/src/Messages/OWSMessageHandler.h +++ b/SignalServiceKit/src/Messages/OWSMessageHandler.h @@ -4,8 +4,6 @@ NS_ASSUME_NONNULL_BEGIN -extern const NSUInteger kIncomingMessageBatchSize; - @class OWSSignalServiceProtosContent; @class OWSSignalServiceProtosDataMessage; @class OWSSignalServiceProtosEnvelope; diff --git a/SignalServiceKit/src/Messages/OWSMessageHandler.m b/SignalServiceKit/src/Messages/OWSMessageHandler.m index 59450d7ca..b2915930b 100644 --- a/SignalServiceKit/src/Messages/OWSMessageHandler.m +++ b/SignalServiceKit/src/Messages/OWSMessageHandler.m @@ -7,15 +7,6 @@ NS_ASSUME_NONNULL_BEGIN -// We need to use a consistent batch size throughout -// the incoming message pipeline (i.e. in the -// "decrypt" and "process" steps), or the pipeline -// doesn't flow smoothly. -// -// We want a value that is just high enough to yield -// perf benefits. The right value is probably 5-15. -const NSUInteger kIncomingMessageBatchSize = 10; - // used in log formatting NSString *envelopeAddress(OWSSignalServiceProtosEnvelope *envelope) {