Expand my Community achievements bar.

Deserialization Performance in FDS

Avatar

Level 2
We have an application that relies on FDS for both remote
method invocation and data synchronization. In certain remote
calls, when we send down an object graph for storing on the server,
the majority of the time on the server is spent in FDS doing
deserialization. Here is an example of what I mean:



(fds starts processing get billing codes)

(deserialize params)

[Flex]15:20:28.604 [DEBUG] [Endpoint.RTMP] Deserializing
AMF/RTMP request

[Flex]15:20:31.649 [DEBUG] [Message.RPC] Before invoke
service: remoting-service

(deserialize done -- 3.045)

(method invoked)

2007-05-10 15:20:31,649 DEBUG
[com.presidio.coding.BillingCodingServiceImpl] - 1178835631649)
Start Log Timer: Getting billing codes (getByEncounterId)

2007-05-10 15:20:31,799 DEBUG
[com.presidio.coding.BillingCodingServiceImpl] - 1178835631799)End
Log Timer (150: Finished getting billing codes

(method complete - took .150)

[Flex]15:20:31.799 [DEBUG] [Service.Remoting] Result:
'com.presidio.billing.BillingCodes

[Flex]15:20:31.809 [DEBUG] [Message.RPC] After invoke
service: remoting-service

[Flex]15:20:31.809 [DEBUG] [Endpoint.RTMP] Serializing
AMF/RTMP response

(fds done with get billing codes -- total time 3.205 ---
method took .150(5%) -- deserialize took 3.045(95%) -- serialize
took 0%)



As you can see from our timings, deserialization took 95% of
the total time to process. It appears to be taking 3.045 seconds to
deserialize an object graph sent from a Flex client through a FDS
remoteObject call. The bean graph is not that big.



Any thoughts on how to track down what is taking so long
and/or to optimize the speed with which deserialization operates?



Thanks,

Tom
0 Replies