The following metrics illustrate 'best case' performance achieved with v 1.5.68, the times listed are total processing time as shown by JEMH audit drill down.

OS

Ubuntu 13_10 x64_64, virtualised on XenServer 6.1

Hardware
CPU6 physical core i7-3930K @ 3.2GHz
Memory3GB
DiskSSD
Databaselocal Postgres
Version 1.5.68
Protocol1MB2MB4MB8MB16MB24MB
POP

4901mS

8892mS14922mS34576mS

62429ms

 
       
Example 16MB case

In the 16MB case the following key timestamps were in the log

TimestampDurationEvent
20:06:40,8060Message Received
20:06:54,34113.5SAudit Event written
20:07:42,50848SGet Body Content, ready to start processing
20:07:43,3230.8SAll processing

Events

Message Received

The clock here started when the message arrived, therefore, transport related delays were not included.  The 0 point is when JEMH has been invoked by JIRA.

Audit Event written

In order to do awesome things, JEMH serializes the email on receipt as part of creating an audit event.  This action rebuilds a structured encoded TEXT document based on the object form email.  It takes a while because its converting a 16MB binary file to 7bit encoded text.

Get Body Content

In order to locate all manner of non-standard content like inline images that can be embedded within the 'directory like' structure of MIME/Multipart messages, JEMH scans all parts in turn.  

TODO: More profiling is required to see what is the chief bottleneck in this case.

All processing

The core JEMH processing is pretty quick.