rjbs has been trying to improve Email::Simple's memory consumption, so I figured I'd give his test a try on MIME::Parser, just for the heck of it. It's not a very good test for MIME::Parser, because Email::Simple doesn't itself do most of the stuff MIME::Parser does, but it's something.
Given the numbers he posted, for Email::Simple, I expected MIME::Parser to be much worse, but instead, for an 8MB message with 50 headers I get:
$ perl ./readmail-mimetools big.msg
just started : 1556 3384
after require File::Slurp : 2564 4180
after slurping : 18204 19812
after require MIME::Parser : 21928 23460
after construction : 37684 39236
So... the code over head for MIME::Parser is about 3.7MB, and we take just under 2x the message size for internal representation.$ perl ./readmail-mimetools-noncore big.msg
just started : 1560 3384
after require File::Slurp : 2564 4180
after slurping : 18204 19812
after require MIME::Parser : 21928 23460
after construction : 29832 31412
So, what does this prove? Well, MIME-tools doesn't suck as bad as I thought. That's about it.