[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/