Martin B.
2010-12-06 14:26:56 UTC
Hi all!
I could need some advice with performance tuning our CORBA calls with
omniORB - find the "details" below:
-------- Original Message --------
Subject: Optimizing call "layout" + performance
Date: Fri, 03 Dec 2010 12:14:54 +0100
From: Martin B. <***@gmx.at>
Newsgroups: comp.object.corba
Hi,
We are currently transferring measurement samples (list of doubles +
timestamp) via a corba call connection.
The current interface looks like this:
...
typedef ... TimestampStruct;
typedef sequence<double> DblValueSeq;
void transferSample(in TimestampStruct ts, in DblValueSeq values);
...
We would like to make sure that our data transfer is as efficient as
possible (as in: transferring samples with several kHz), and so I'm
trying to get opinions on how we could possibly modify the call
signature (if necessary) or which ORB settings influence data transfer
efficiency.
Notes: Typical sequence sizes range from ~10 ... ~hundreds, so each call
transfers very approximately say 100 bytes - 10 kbytes
One specific question that bothers me is whether it could make sense to
block several samples into one call, that is to change the sig to:
...
struct Sample {
TimestampStruct ts;
DblValueSeq values;
};
typedef sequence<Sample> SampleSeq;
void transferSamples(in SampleSeq samples);
...
Any tips and pointers welcome!
cheers,
Martin
I could need some advice with performance tuning our CORBA calls with
omniORB - find the "details" below:
-------- Original Message --------
Subject: Optimizing call "layout" + performance
Date: Fri, 03 Dec 2010 12:14:54 +0100
From: Martin B. <***@gmx.at>
Newsgroups: comp.object.corba
Hi,
We are currently transferring measurement samples (list of doubles +
timestamp) via a corba call connection.
The current interface looks like this:
...
typedef ... TimestampStruct;
typedef sequence<double> DblValueSeq;
void transferSample(in TimestampStruct ts, in DblValueSeq values);
...
We would like to make sure that our data transfer is as efficient as
possible (as in: transferring samples with several kHz), and so I'm
trying to get opinions on how we could possibly modify the call
signature (if necessary) or which ORB settings influence data transfer
efficiency.
Notes: Typical sequence sizes range from ~10 ... ~hundreds, so each call
transfers very approximately say 100 bytes - 10 kbytes
One specific question that bothers me is whether it could make sense to
block several samples into one call, that is to change the sig to:
...
struct Sample {
TimestampStruct ts;
DblValueSeq values;
};
typedef sequence<Sample> SampleSeq;
void transferSamples(in SampleSeq samples);
...
Any tips and pointers welcome!
cheers,
Martin