Policy Provider and Extensible RMI Performance. (original) (raw)

Peter Firmstone peter.firmstone at zeus.net.au
Wed Jul 16 12:56:46 UTC 2014


Who said security and RMI had to be performance dogs?

Anyone ever notice it's native code that uses all the CPU?

100% CPU Utilisation 0% monitor Peak live threads 99

Test run time 2 minutes.

4891 Remote Object Invocations, includes remote code downloading and class loading (thread confined).

Hot Spots - Method Self time [%] Self time Self time (CPU) java.net.SocketInputStream.socketRead0native 37.509655 434975.725 ms 434975.725 ms java.net.DualStackPlainSocketImpl.accept0native 25.825586 299482.984 ms 299482.984 ms java.net.TwoStacksPlainDatagramSocketImpl.socketNativeSetOptionnative 15.138092 175546.873 ms 175546.873 ms sun.management.ThreadImpl.dumpThreads0native 9.167401 106308.549 ms 106308.549 ms java.net.TwoStacksPlainDatagramSocketImpl.peekDatanative 7.8661814 91219.129 ms 91219.129 ms java.net.SocketOutputStream.socketWrite0native 1.8873161 21886.01 ms 21886.01 ms

Impact of Security (thread confined PermissionCollection's created on demand in optimum order, discarded in CPU cache):

java.security.AccessController.doPrivilegednative 0.2687941 3117.035 ms 3117.035 ms java.security.AccessController.getStackAccessControlContextnative 0.14554662 1687.812 ms 1687.812 ms

java.security.AccessControlContext.checkPermission() 0 0.0 ms 0.0 ms com.sun.jini.start.AggregatePolicyProvider$AggregateSecurityContext.setCCL() 0 0.0 ms 0.0 ms org.apache.river.api.security.CombinerSecurityManager$DelegateProtectionDomain.implies() 0 0.0 ms 0.0 ms org.apache.river.api.net.RFC3986URLClassLoader.findClassImpl() 0 0.0 ms 0.0 ms com.sun.proxy.$Proxy5.prepareAndCommit() 0 0.0 ms 0.0 ms com.sun.jini.start.AggregatePolicyProvider.getCurrentSubPolicy() 0 0.0 ms 0.0 ms java.io.ObjectOutputStream.writeProxyDesc() 0 0.0 ms 0.0 ms java.lang.Class.forName() 0 0.0 ms 0.0 ms java.security.ProtectionDomain.implies() 0 0.0 ms 0.0 ms sun.reflect.GeneratedMethodAccessor25.invoke() 0 0.0 ms 0.0 ms com.sun.jini.start.AggregatePolicyProvider.implies() 0 0.0 ms 0.0 ms com.sun.jini.start.AggregatePolicyProvider$AggregateSecurityContext.access$500() 0 0.0 ms 0.0 ms org.apache.river.api.net.RFC3986URLClassLoader.findClass() 0 0.0 ms 0.0 ms net.jini.loader.pref.PreferredClassLoader.loadClass() 0 0.0 ms 0.0 ms java.security.AccessController.getContext() 0 0.0 ms 0.0 ms java.security.AccessController.doPrivileged() 0 0.0 ms 0.0 ms

Thread confined classloading (1 Thread per child ClassLoader).

java.lang.Class.forName0native 0.030607257 354.933 ms 354.933 ms

ant -f C:\Users\peter\Documents\NetBeansProjects\peterConcurrentPolicy qa.run-tests qa.run-tests: qa.james-brown: Deleting directory C:\Users\peter\Documents\NetBeansProjects\peterConcurrentPolicy\qa\soul Created dir: C:\Users\peter\Documents\NetBeansProjects\peterConcurrentPolicy\qa\soul Creating C:\Users\peter\Documents\NetBeansProjects\peterConcurrentPolicy\qa\soul\soul.201407162226006985 qa.run-tests:


CONFIGURATION FILE:

C:\Users\peter\Documents\NetBeansProjects\peterConcurrentPolicy\qa\src\com\sun\jini\test\resources\qaHarness.prop


SETTING UP THE TEST LIST:

Adding test: com/sun/jini/test/impl/mahalo/RandomStressTest.td

GENERAL HARNESS CONFIGURATION INFORMATION:

Date started:
   Wed Jul 16 22:26:08 EST 2014
Installation directory of the JSK:
   

com.sun.jini.jsk.home=C:\Users\peter\Documents\NetBeansProjects\peterConcurrentPolicy Installation directory of the harness:
com.sun.jini.qa.home=C:\Users\peter\Documents\NetBeansProjects\peterConcurrentPolicy\qa Categories being tested: categories=No Categories

ENVIRONMENT PROPERTIES:

JVM information:
   Java HotSpot(TM) Client VM, 25.0-b70, 32 bit VM mode
   Oracle Corporation
OS information:
   Windows 7, 6.1, x86

STARTING TO RUN THE TESTS

Running com/sun/jini/test/impl/mahalo/RandomStressTest.td Time is Wed Jul 16 22:26:08 EST 2014 Starting test in separate process with command: 'C:\Program Files\Java\jdk1.8.0\jre\bin\java' -Djava.security.manager=org.apache.river.api.security.CombinerSecurityManager -Djava.security.policy=file:/C:/Users/peter/Documents/NetBeansProjects/peterConcurrentPolicy/qa/harness/policy/defaulttest.policy '-Djava.rmi.server.codebase=http://medusa:9082/qa1-share-dl.jar http://medusa:9082/qa1-mahalo-dl.jar' -cp C:\Users\peter\Documents\NetBeansProjects\peterConcurrentPolicy\qa\lib\jiniharness.jar;C:\Users\peter\Documents\NetBeansProjects\peterConcurrentPolicy\qa\lib\jinitests.jar;C:\Users\peter\Documents\NetBeansProjects\peterConcurrentPolicy\lib\jsk-platform.jar;C:\Users\peter\Documents\NetBeansProjects\peterConcurrentPolicy\lib\jsk-lib.jar;C:\Users\peter\Documents\NetBeansProjects\peterConcurrentPolicy\lib\high-scale-lib.jar;C:\Users\peter\Documents\NetBeansProjects\peterConcurrentPolicy\lib\custard-apple-1.0.3.jar -ea -esa '-Djava.ext.dirs=C:\Program Files\Java\jdk1.8.0\jre\lib\ext;C:\windows\Sun\Java\lib\ext;C:\Users\peter\Documents\NetBeansProjects\peterConcurrentPolicy\qa\lib-ext;C:\Users\peter\Documents\NetBeansProjects\peterConcurrentPolicy\lib-ext' -Dcom.sun.jini.jsk.port=9080 -Dcom.sun.jini.qa.port=9081 -Dcom.sun.jini.jsk.home=C:\Users\peter\Documents\NetBeansProjects\peterConcurrentPolicy -Dcom.sun.jini.qa.home=C:\Users\peter\Documents\NetBeansProjects\peterConcurrentPolicy\qa -Dcom.sun.jini.qa.harness.harnessJar=C:\Users\peter\Documents\NetBeansProjects\peterConcurrentPolicy\qa\lib\jiniharness.jar -Dcom.sun.jini.qa.harness.testJar=C:\Users\peter\Documents\NetBeansProjects\peterConcurrentPolicy\qa\lib\jinitests.jar -Dcom.sun.jini.qa.harness.runjiniserver=true -Dcom.sun.jini.qa.harness.runkitserver=true -Djava.security.properties=file:/C:/Users/peter/Documents/NetBeansProjects/peterConcurrentPolicy/qa/harness/trust/dynamic-policy.properties -Dcom.sun.jini.qa.harness.testhosts= -Djava.util.logging.config.file=C:\Users\peter\Documents\NetBeansProjects\peterConcurrentPolicy\qa\src\com\sun\jini\test\resources\qa1.logging -Djava.rmi.server.useCodebaseOnly=false -Dnet.jini.core.lookup.ServiceRegistrar.portAbitraryIfInUse=true -Dcom.sun.jini.test.home=C:\Users\peter\Documents\NetBeansProjects\peterConcurrentPolicy\qa -Dcom.sun.jini.test.port=9082 -Dcom.sun.jini.qa.harness.policies=file:/C:/Users/peter/Documents/NetBeansProjects/peterConcurrentPolicy/qa/src/com/sun/jini/test/resources/jinitest.policy '-Djava.ext.dirs=C:\Program Files\Java\jdk1.8.0\jre\lib\ext;C:\windows\Sun\Java\lib\ext;C:\Users\peter\Documents\NetBeansProjects\peterConcurrentPolicy\qa\lib-ext;C:\Users\peter\Documents\NetBeansProjects\peterConcurrentPolicy\lib-ext' com.sun.jini.qa.harness.MasterTest com/sun/jini/test/impl/mahalo/RandomStressTest.td

TIME: 10:26:09 PM

MasterTest.doTest INFO: ============================== CALLING CONSTRUCT()

Jul 16, 2014 10:26:09 PM com.sun.jini.tool.ClassServer run INFO: ClassServer started [[C:\Users\peter\Documents\NetBeansProjects\peterConcurrentPolicy\qa\lib], port 9081] MasterTest.doTest INFO: =============================== CALLING RUN()

RandomStressTest.run INFO: RandomStressTest: To repeat the test, note down the seed RandomStressTest.run INFO: RandomStressTest: seed = 1405513570013 RandomStressTest.run INFO: TEST NOT FINISHED UNTIL I SAY DONE Jul 16, 2014 10:26:10 PM com.sun.jini.tool.ClassServer run INFO: ClassServer started [[C:\Users\peter\Documents\NetBeansProjects\peterConcurrentPolicy\qa\lib], port 9082] Jul 16, 2014 10:26:10 PM com.sun.jini.tool.ClassServer run INFO: ClassServer started [[C:\Users\peter\Documents\NetBeansProjects\peterConcurrentPolicy\lib-dl], port 9080] NonActGrp-out: Profiler Agent: Waiting for connection on port 5140 (Protocol version: 13) NonActGrp-out: Profiler Agent: Established connection with the tool NonActGrp-out: Profiler Agent: Local accelerated session NonActGrp-out: java.lang.ClassNotFoundException: java/util/LinkedHashMap$KeyIterator NonActGrp-out: at java.lang.Class.forName0(Native Method) NonActGrp-out: at java.lang.Class.forName(Class.java:259) NonActGrp-out: at org.netbeans.lib.profiler.server.ProfilerInterface$InitiateProfilingThread.initiateInstrumentation(ProfilerInterface.java:138) NonActGrp-out: at org.netbeans.lib.profiler.server.ProfilerInterface$InitiateProfilingThread.run(ProfilerInterface.java:100)

TIME: 10:27:36 PM

RandomStressTest.run INFO: Wait about 15 sec.

TIME: 10:27:51 PM

RandomStressTest.run INFO: TEST DONE MasterTest.doTest INFO: ============================ CALLING TEARDOWN()

NonActGrp-out: Profiler Agent: Connection with agent closed NonActGrp-out: Profiler Agent: Connection with agent closed NonActGrp-out: Profiler Agent: JNI OnLoad Initializing... NonActGrp-out: Profiler Agent: JNI OnLoad Initialized successfully NonActGrp-out: Profiler Agent: 250 classes cached. Jul 16, 2014 10:27:58 PM com.sun.jini.tool.ClassServer terminate INFO: ClassServer terminated [port 9081] Jul 16, 2014 10:27:58 PM com.sun.jini.tool.ClassServer terminate INFO: ClassServer terminated [port 9081] Jul 16, 2014 10:27:58 PM com.sun.jini.tool.ClassServer terminate INFO: ClassServer terminated [port 9082] Jul 16, 2014 10:27:58 PM com.sun.jini.tool.ClassServer terminate INFO: ClassServer terminated [port 9082] Jul 16, 2014 10:27:58 PM com.sun.jini.tool.ClassServer terminate INFO: ClassServer terminated [port 9080] Jul 16, 2014 10:27:58 PM com.sun.jini.tool.ClassServer terminate INFO: ClassServer terminated [port 9080]

TIME: 10:28:03 PM

Test process was destroyed and returned code 0 com/sun/jini/test/impl/mahalo/RandomStressTest.td Test Passed: OK


SUMMARY =================================

com/sun/jini/test/impl/mahalo/RandomStressTest.td Test Passed: OK


of tests started = 1

of tests completed = 1

of tests passed = 1

of tests failed = 0


Date finished:
   Wed Jul 16 22:28:08 EST 2014
Time elapsed:
   119 seconds

qa.collect-result: BUILD SUCCESSFUL (total time: 2 minutes 1 second)



More information about the core-libs-dev mailing list