Memory use when returning large amounts of base64 encoded data
I have written an XMLRPC server using SOAP::Lite (version 0.52 -
default installation options, Perl 5.6.1, Redhat Linux 6.2). I have
struck a problem when returning base64 encoded image data.
Everything works but after returning the image data the program
memory usage grows by more than 120MB. The images are fairly large,
typically 5-6MB, and once base64 encoded ~7-8MB.
Initially, I was calling MIME::Base64::encode_base64 directly and
returning the data as a string.
I have also tried using SOAP::Data->type(base64 => $imageData), in
the hope that this would avoid the use of "as_string" in the
serializer since the docs noted a performance hit when using
as_string as opposed to as_base64. This still causes the same memory
Is there any way that I may be able to cut down this memory usage or
is that just what it takes?