Description
An analysis of imapnio with a profiler showed most of its time is spent filling stack traces due to integer parsing.

The underlying IMAPResponse from javax.mail does an attempt to parse untagged responses under the format * NUMBER KEYWORD exemple * 36 EXISTS.
However some commands like LIST
Expected Behavior
Avoid filling this stacktrace.
Actual Behavior
Fills the stacktrace and spends a lot of time doing so (40% of CPU time dedicated to imapnio)
Possible Fix
It looks like overriding this behaviour in IMAPResponse not to be feasible (init method doing such a check is private)
Context
I am using imapnio to write an IMAP benchmarking tool: https://github.com/linagora/gatling-imap/ . As such, in order not to impact performance measurement low latencies are paramount on the injection side.
Description
An analysis of imapnio with a profiler showed most of its time is spent filling stack traces due to integer parsing.
The underlying
IMAPResponsefrom javax.mail does an attempt to parse untagged responses under the format* NUMBER KEYWORDexemple* 36 EXISTS.However some commands like
LISTExpected Behavior
Avoid filling this stacktrace.
Actual Behavior
Fills the stacktrace and spends a lot of time doing so (40% of CPU time dedicated to imapnio)
Possible Fix
It looks like overriding this behaviour in
IMAPResponsenot to be feasible (init method doing such a check is private)Context
I am using imapnio to write an IMAP benchmarking tool: https://github.com/linagora/gatling-imap/ . As such, in order not to impact performance measurement low latencies are paramount on the injection side.