You probably can try the com.google.gwt.rpc.RPC module though it has
been experimental for awhile. It seems to be a more efficient way of
encoding and decoding.

To use it it is almost the same as the other RPC:

1- Inherit the module: <inherits name='com.google.gwt.rpc.RPC'/>

2- Have you service interface extends the
com.google.gwt.rpc.client.RpcService
 Ex:
/**
 * The client side stub for the RPC service.
 */
@RemoteServiceRelativePath("myService ")
public interface MyService extends RpcService {
        MyComplexObject myMethod(String name);
}

3- Have your implementation extends from
com.google.gwt.rpc.server.RpcServlet

Ex:
@SuppressWarnings("serial")
public class MyServiceImpl extends RpcServlet implements MyService {

        public MyComplexObject myMethod(String input) {
                return null;
        }

}

4- You need the Async the same way as the other RPC service:
Ex:
public interface MyServiceAsync {
        void myMethod(String input, AsyncCallback<MyComplexObject> callback);
}

This is it.

On Jun 15, 9:07 am, Jonas <sark...@gmail.com> wrote:
>  In my GWT program I parse a large xml file using JAXB on the server side
> and then convert these objects into DTO. They contain a lot of strings,
> doubles, and integers in a nested hierarchy. I'm using ArrayList as
> collection for the nested objects. The problem is that when I send this over
> RPC it takes around 16 seconds and the browser freezes. I first thought
> there was something wrong with JAXB or the DTO conversion but as you can see
> below they are very fast:
>
> DEBUG gwt-log:72 - - JAXB conversion time: 0.047 seconds
> DEBUG gwt-log:72 - - DTO conversion time: 0.015 seconds
>
> When I inspect the RPC call using FireBug I can see that the object being
> transferred is 4.6 kb and it says POST dispatch 111ms.
>
> When I inspect some more I can see that the function
> @com.google.gwt.user.client.rpc.impl.ClientSerializationStreamReader::readI 
> nt()
> seems to be the culprit with 5428 calls and 6654ms total time.
> ::getString(I), ::readDouble(), ::readLong() are also called a lot with
> around 3000ms each.
>
> Am I doing something wrong here or should it really be this slow? ~16
> seconds for 5 kb of DTO data. It just seems wrong to me.

-- 
You received this message because you are subscribed to the Google Groups 
"Google Web Toolkit" group.
To post to this group, send email to google-web-toolkit@googlegroups.com.
To unsubscribe from this group, send email to 
google-web-toolkit+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-web-toolkit?hl=en.

Reply via email to