Skip Menu |

This queue is for tickets about the MIME-tools CPAN distribution.

Report information
The Basics
Id: 130110
Status: new
Priority: 0/
Queue: MIME-tools

People
Owner: Nobody in particular
Requestors: gregoa [...] cpan.org
Cc:
AdminCc:

Bug Information
Severity: (no value)
Broken in: (no value)
Fixed in: (no value)



From: gregoa [...] cpan.org
Subject: MIME::Decoder::Base64::encode_it() is too slow
We have the following bug reported to the Debian package of MIME-tools, c.f. https://bugs.debian.org/931769 It doesn't seem to be a bug in the packaging, so you may want to take a look. Thanks! ------8<-----------8<-----------8<-----------8<-----------8<----- Package: libmime-tools-perl Version: 5.508-1 (Issue believed to be still present in the latest version 5.509-1.) When base64-encoding a large file, MIME::Decoder processes it 45 bytes at a time. The resulting function call (and, depending on the application, system call) overhead can be very noticeable. I've seen RT (Debian package request-tracker4) hit a 40-second timeout while encoding a 8MB attachment because of this. Significant gains can be had by telling the encoder to process the file in larger chunks; I've set $EncodeChunkLength = 120*57 with good results. This takes advantage of the fact that MIME::Base64::encode_base64() will split the output into 76-byte lines by default; the feature has been documented since at least version 2.04 of MIME::Base64 (the minimum version required by MIME::Decoder::Base64). Maybe the encode chunk length should somehow be made configurable. If output is to a pipe one may want not to exceed the pipe buffer size (currently 64kB in Linux, but it can be smaller on other operating systems). ------8<-----------8<-----------8<-----------8<-----------8<----- Thanks for considering, gregor herrmann, Debian Perl Group