- a tiny ORB wrapper on SOAP,RMT -
(2004/05/03) This is a simple performance test of OperaORB. I've done with the following environments:
#Please note that rST does not run on Squeak 3.7b. So, the comparison is not so strict one.
Testing codes are simple.
RSTBroker startOnPort: 9998 logging: false.
exportedOrderedCollection := OrderedCollection new.
RSTBroker instance export: exportedOrderedCollection named: 'myOrderedCollection'.
remoteOrderedCollection := ('myOrderedCollection@192.168.1.2:9998') asRemoteObjectID asLocalObject.
[1000 timesRepeat: [remoteOrderedCollection add: 'Hello, Remote Squeak World!']] timeToRun.
OperaORB init: {{#port:. 9999}}.
OperaNamingService local at: #myOrderedCollection put: OrderedCollection new.
namingService := OperaNamingService host: '192.168.1.2' port: 9999.
remoteOrderedCollection := namingService at: #myOrderedCollection.
[1000 timesRepeat: [remoteOrderedCollection add: 'Hello, Remote Squeak World!']] timeToRun.
Three trials.
first(msec) | second(msec) | third(msec) | |
rST | 13406 | 13755 | 13836 |
OperaORB-native | 3373 | 3457 | 3448 |
OperaORB-native is faster. I think it is because RMT keeps connections, while rST not.
If I tried OperaORB SOAP, it would be slower than rST, because SOAP (over HTTP) does not keep connections and all invocations are encoded in XML.