Issue 118449 - notifyListeners() method in io/source is called during each IPC and eats much time
Summary: notifyListeners() method in io/source is called during each IPC and eats much...
Alias: None
Product: udk
Classification: Code
Component: code (show other issues)
Version: 3.4.0 Beta (OOo)
Hardware: All All
: P5 (lowest) Normal (vote)
Target Milestone: ---
Assignee: AOO issues mailing list
QA Contact:
Depends on:
Reported: 2011-09-14 07:05 UTC by olistraub
Modified: 2016-10-23 18:34 UTC (History)
2 users (show)

See Also:
Latest Confirmation in: ---
Developer Difficulty: ---


Note You need to log in before you can comment on or make changes to this issue.
Description olistraub 2011-09-14 07:05:48 UTC
notifyListeners() in ./source/connector/ctr_socket.cxx and ./source/acceptor/acc_socket.cxx takes a mutex, copies a hash_set and then iterates over the hash_set.

This method seems to be called during each IPC (if not multiple times per IPC).

Copying a hash_set is very expensive, as is iterating over a hash_set. Even if the hash_set is empty, it takes a considerable amount of CPU cycles.

The hash_set in these methods is filled by XStreamListener::addStreamListener. Within the AOOo code base, I only found implementers of this method, but noone that's actually calling it.

I'd suggest the following:
1) remove the functionality -> major IPC speedup
2) change code from hash_set to a normal vector, optimize code to check vector size before doing anything
Comment 1 Oliver-Rainer Wittmann 2012-06-13 12:24:10 UTC
getting rid of value "enhancement" for field "severity".
For enhancement the field "issue type" shall be used.
Comment 2 Keith N. McKenna 2016-10-23 18:34:34 UTC
The description sounds more like an Enhancement request than an actual defect. Changing Issue Type to Enhancement.