I have found that on Solaris 10, Java serialization performance exceeds that of JBoss
serialization for single-threaded applications across a variety of object types.
However, in multi-threaded applications I have found the opposite to be true. It would
seem that Java serialization has some sort of synchronization bottleneck in something
called:
java.lang.Ref.ReferenceQueue$Lock
For highly threaded applications, JBoss performance and scalability greatly exceeded that
of plain old Java Serialization.
TEST #Runs Threads BufferSize File System Serializer Size X/s
io 10000 1 32768 ufs Java 21474 142.6
io 10000 2 32768 ufs Java 21474 199.7
io 10000 3 32768 ufs Java 21474 208
io 10000 4 32768 ufs Java 21474 199.7
io 10000 1 32768 swap Java 21474 156.1
io 10000 2 32768 swap Java 21474 203.8
io 10000 3 32768 swap Java 21474 216.9
io 10000 4 32768 swap Java 21474 208
io 10000 1 32768 swap Jboss 25567 116.1
io 10000 2 32768 swap Jboss 25567 249.6
io 10000 3 32768 swap Jboss 25567 368.3
io 10000 4 32768 swap Jboss 25567 474.9
io 10000 8 32768 swap Jboss 25567 828.9
io 10000 12 32768 swap Jboss 25567 986.5
io 10000 16 32768 swap Jboss 25567 1095.9
For larger sample sizes the difference between Java and JBoss diverged. So, I think the
answer to the "which is faster?" question is correctly answered by the age-old
response "It depends."
If your application is highly threaded and needs to scale, JBoss is likely for you. If
single threaded serialization is fine, Java serialization may be for you.
Of course, the landscape is likely to change again in Java 1.6 and 1.7. However, until
WebSphere supports this version of the JDK, it is not relevant for my situation.
- Pat
View the original post :
http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4151190#...
Reply to the post :
http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&a...