[omniORB] Quadratic behavious of omniORB DSI - proposed fix

Victor Joukov vic@rambler.ru
Wed Feb 12 03:32:02 2003


Proposed conservative fix:
in cdrMemoryStream::reserveOutputSpace (file
src/lib/omniORB/orbcore/cdrMemoryStream.cc)
before line
  newsize = datasize + required + (size_t) omni::ALIGN_8;
insert following two lines
  if (required + (size_t) omni::ALIGN_8 < datasize / 2)
    required = datasize / 2 - (size_t) omni::ALIGN_8;

It ensures that memory allocated in exponential manner,
though not very agressively, with the base 1.5 instead of
usual 2. So the memory overhead is not that large, and
behaviour reduces to linear, it even beats TAO in absolute
figures.

I'd like to see it in regular omniORB release, so that I
would not be forced to patch every copy of omni downloaded.

What should I do for this, because community seems to be
not very interested in DSI in general and in such peculiar
issues as its performance (which is contrary to the
general beleif not worse than static's one) in particular?

This patch IS tested, and works fine.

Victor.

---------
Рамблер желает всем счастливого Нового Года!!!
http://www.rambler.ru/