Not having a JIT may be really biting you here. AFAIK GWT serialisation makes extensive use of reflection, however there seems to be a way to define a custom field serializer (looks similar to using Externalizable), but I've not tried this myself:
http://books.google.co.uk/books?id=KXBdajKMJGEC&pg=PA164&lpg=PA164&dq=gwt+custom+field+serializer&source=bl&ots=w5LGABPcqR&sig=JRqZoeXztC7rG9jxftP_6QbbWwM&hl=en&ei=0syfSqSsIIPUjAf77Jm9Dg&sa=X&oi=book_result&ct=result&resnum=9#v=onepage&q=gwt%20custom%20field%20serializer&f=false Good luck and if you decide to try this approach I'll be interested to hear how you get on. Cheers, Chris. On Sep 2, 12:04 pm, David Given <[email protected]> wrote: > Chris Lowe wrote: > > [...] > > > 500-600 does seem like a lot of objects to be processing in one hit if > > performance on a low end server is a concern, but then again 20 > > seconds seems like an awfully long time too. > > Actually, thinking about it, it's more than that --- probably around > 1500 objects (500 large objects, but each one contains references to a > few small just-data objects). > > > What's the performance like in your dev environment? Are your JVM > > settings the same as those on your target server? > > [...] > > You can also add a simple filter before the GWT servlet to > > give you a very coarse request timing - you can at least then rule out > > latencies and bandwidth to your server. > > I wish. The target server is a solid-state ARM box -- a SheevaPlug > (1.2GHz processor, 512MB RAM). Alas, there is no decent JIT for ARM yet, > so it's running the interpreted JDK. I'll check out VisualVM, but I > suspect that it's not up to running it. > > Annoyingly the machine is perfectly capable of running the actual > *application*. The actual logic takes a tiny fraction of the time of the > serialisation. > > My development machine is a traditional ix32 box and serialisation takes > a trivial amount of time. I'll try the trick with the filter to get some > actual figures. > > [...] > > > How large are your serialized objects prior to compression? I think > > you can quickly test this by disabling gzip compression in FireFox: > > >http://forgetmenotes.blogspot.com/2009/05/how-to-disable-gzip-compres... > > This just causes the page to turn into garbage --- probably a server > misconfiguration on my end. > > > If the uncompressed size is particularly large then memory and > > compression time may be the limiting factor. > > Looking at the server stats its VM size doesn't appear to change during > the first serialisation process, indicating that it doesn't want to > allocate more memory. I have a feeling that memory's not the problem. > > > Finally, what kind of objects are you serialising? Are you attempting > > to send something like Hibernate objects over the wire (or some other > > kind of proxied objects) which are causing unexpected database hits? > > Nope. The entire DB is being held in-memory. In fact, the way my app > works is that the server logic calculates the delta needed to be sent to > the client, constructs a packet of client objects from this, and then > returns that packet as the result from the RPC call, so the stuff being > serialised doesn't actually content to the objects in the DB at all. (My > 400-object delta, the result of the initial DB sync, takes about 4s to > generate.) > > The delta generation uses reflection and annotations to query the DB > objects for properties that need to be copied into the delta. (The > client is only allowed to see information from the DB that the user is > allowed to have.) Simply by adding a cache for Field objects I managed > to reduce the time taken for the delta generation by a factor of ten, so > I suspect that reflection is dog slow with this JVM. What does the GWT > serialisation system use? If it uses reflection, is there any way of > persuading it to use byte-code generation instead? > > -- > ┌─── dg@cowlark.com ─────http://www.cowlark.com───── > │ > │ "They laughed at Newton. They laughed at Einstein. Of course, they > │ also laughed at Bozo the Clown." --- Carl Sagan --~--~---------~--~----~------------~-------~--~----~ 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 -~----------~----~----~----~------~----~------~--~---
