I recently started the development of an application making intensive usage of networking. A first attempt was made using RMI and for a couple of reasons, we switched over
I would not trust the results of that benchmark. It does not ensure that the JVM is warmed up; i.e. that classes are loaded, initialized and compiled to native code before measuring execution times. There is a good chance that native code compilation kicks in part way through running the benchmark, and this inflates the time taken by one or more of the loops.