DII/DSI
- From: Jon K Hellan <hellan acm org>
- To: gnome-components-list gnome org
- Subject: DII/DSI
- Date: Tue, 14 Mar 2000 15:56:03 +0100
Hi,
Michael Meeks asked me to share this with the list:
> Yes, the perl bindings are a quick hack. The 'right way'TM is to
> use the DSI / DII interface but it is a lot more code. I see no point in
> writing ORBit wrappers for python if the omniorb ones are already writte,
> better and prolly use DII / DSI already :-)
DII/DSI is nice, and users don't need up to date IDL files. But it's *a
lot* slower than stubs and skeletons. Here are some figures for Java
ORBs. (From Orfali and Harkey, Client Server Programming with JAVA and
CORBA, 2nd ed., John Wiley 1998). The test case is this piece of
trivial IDL:
module Counter
{
interface Count
{ attribute long sum;
long increment();
};
};
Static remote invocation: 3.5 msec.
Dynamic remote request construction and invocation: 61.4 msec.
Ditto, construction excluded: 3.6 msec.
You don't lose much if you do the same operation over and over, but
will you ever do that? The parameters will surely change.
Anyway, users need glade files which match their software versions, so
we can keep their idl files synchronized as well.
I've benched this test case for a number of combinations. These are
all measured with stubs and skeletons made by the IDL compiler.
Local: AMD K6/233 64 MB, Linux 2.2.14 / glibc 2.1.3
remote: Client Intel P5/133 48 MB, Server AMD K6/233 64 MB
Both Linux 2.2.14 / glibc 2.1.3, 10 MB/s Ethernet, no other
Ethernet nodes.
omniORB 2.8.0 / omniORBpy
orbit 0.5.1 (0.5.0 client in remote)
Client Server Local/Remote Avg. ping Calls/sec
orbit/C orbit/C local 0.24 ms 4150
orbit/C orbit/C remote 1.36 ms 730
orbit/C omniorb/Python local 2.07 ms 480
orbit/C omniorb/Python remote 2.65 ms 375
omniorb/Python orbit/C local 0.69 ms 1450
omniorb/Python orbit/C remote 1.94 ms 515
omniorb/Python omniorb/Python local 2.23 ms 450
omniorb/Python omniorb/Python remote 3.17 ms 315
For scripting, Python via omniORB is quite fast. It performs better
than Java IDL - the ORB which comes bundled with Java 2.
orbit/C** Java IDL/java local 2.2 ms 450
orbit/C** Java IDL/java remote* 2.6 ms 380
Java IDL/java orbit/C** local 1.24 ms 810
Java IDL/java orbit/C** remote* 2.0 ms 500
Java IDL/java Java IDL/java local 3.1 ms 320
Java IDL/java Java IDL/java remote* 4.3 ms 230
*: Client P5/133 32 MB, Server AMD K6/233 64 MB
**: Older orbit version
(I made the Java measurements a while back, and forgot to note which
Java platform was used, JIT or not, etc. sorry! Anyway, it's in line
with what Orfali and Harkey's book makes you expect.)
Regards
Jon Kåre
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]