Thought you may find these results interesting, just killed some more
latent concurrency bugs in JERI.
* Mahalo stress tests are now running with 0% contention at close to
raw socket speed.
* ClassLoading is thread confined for each classloader to avoid
contention.
* All underlying infrastructure takes advantage of modern Executors
and concurrency utils.
* TaskManager has been replaced and is no longer needed.
* There are no unnecessary DNS calls, only those required to make
connections.
* Security checks have an imperceptible impact on performance.
* RFC3986 compliant Uri class uses bitshift operations for ASCII
string manipulation.
I need someone with access to decent hardware to really test this out.
Hot Spots - Method Self time [%] Self time Self time (CPU)
Samples
java.net.ServerSocket.accept() 59.933640 161513.736 ms 161513.736 ms
6
java.net.DatagramSocket.receive() 29.966820 80756.868 ms
80756.868 ms 3
java.io.ObjectInputStream.defaultReadObject() 2.706319 7293.194 ms
7293.194 ms 134
java.lang.Class.forName() 2.082170 5611.19 ms 5611.19 ms
9
com.sun.jini.start.AggregatePolicyProvider.getContext() 0.925748
2602.776 ms 2494.776 ms 7
java.util.concurrent.FutureTask.get() 0.911941 182311.234 ms
2457.569 ms 271
java.lang.ClassLoader.loadClass() 0.732275 1973.389 ms
1973.389 ms 7
java.util.Collections$UnmodifiableCollection.isEmpty() 0.516405
1391.647 ms 1391.647 ms 1
com.sun.jini.jeri.internal.mux.Session$MuxInputStream.read() 0.516405
182643.391 ms 1391.647 ms 246
java.io.ObjectOutputStream.writeObject() 0.481305 2885.993 ms
1297.057 ms 76
java.lang.System.identityHashCode[native]() 0.459557 1238.449 ms
1238.449 ms 1
java.lang.SecurityManager.checkConnect() 0.115316 310.762 ms
310.762 ms 3
java.lang.Long.toHexString() 0.110310 297.271 ms 297.271 ms
1
java.io.ObjectOutputStream.defaultWriteObject() 0.095964 38327.99 ms
258.61 ms 71
com.sun.jini.jeri.internal.runtime.Util.unmarshalValue() 0.091908
247.68 ms 247.68 ms 133
au.net.zeus.collection.AbstractReferenceComparator.compare() 0.079535
214.336 ms 214.336 ms 2
java.lang.reflect.Proxy.getInvocationHandler() 0.071852 193.631 ms
193.631 ms 1
com.sun.jini.jeri.internal.runtime.Util.marshalValue() 0.058676
1049.831 ms 158.124 ms 78
java.util.concurrent.AbstractExecutorService.submit() 0.040076 108.0
ms 108.0 ms 1
java.io.ObjectInputStream.<init>() 0.022718 61.223 ms
61.223 ms 1
com.sun.jini.start.ActivateWrapper$ExportClassLoader.toString()
0.022597 60.895 ms 60.895 ms 2
java.security.AccessController.doPrivileged[native]() 0.022204
59.837 ms 59.837 ms 340
java.lang.reflect.Method.invoke() 0.020569 31369.303 ms 55.431
ms 244
org.apache.river.api.net.RFC3986URLClassLoader$5.run() 0.015687
42.274 ms 42.274 ms 2
com.sun.jini.jeri.internal.runtime.Target.dispatch() 0 0.0 ms 0.0
ms 474