My initial guess is that the array serialization during RPC is packing each byte into its own element in a JSON array. So your 400kB byte array turns into a 409,600 element integer array, which is probably using at least 16 bytes per entry, resulting in a fairly large (several megabyte) footprint in Firefox. Doesn't explain why FF grabs several GB for this, but I think you are using a lot more memory than you expect.
On Sun, Nov 16, 2008 at 04:21, Axel <[EMAIL PROTECTED]> wrote: > > Hi, > > I've been trying to handle binary data with one or more MB in size, > passing it through RPC. In Firefox (tested with 3.0.4) I can reproduce > what to me seems like a memory leak. No matter how I assemble the byte > [] contents: as soon as the size approaches or exceeds ~500kB, Firefox > allocates >1GB of memory, bringing my 2GB client machine to swap so > heavily I have to kill FF. > > I tested with different byte[] sizes. 400kB seems to be ok, regardless > the contents. 500kB rarely works and 600kB I never managed to get > through. Assembling the byte[] before actually calling the RPC works > fine. It is the RPC call itself where memory consumption in FF goes up > so drastically. > > My workaround for now is to Base64-encode the byte[] into a String and > send that along, decoding it on the server again. This lets me suspect > that something may be wrong with the byte[] serialization code. > > In the hosted Java environment this problem does not occur at all, and > I can flawlessly send byte[]s with several MB in size no problem. > > Best, > -- Axel > > > --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Google Web Toolkit" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/Google-Web-Toolkit?hl=en -~----------~----~----~----~------~----~------~--~---
