BIND 10 #537: Make asiolink::UDPServer smaller to copy
BIND 10 Development
do-not-reply at isc.org
Wed Jan 26 20:52:03 UTC 2011
#537: Make asiolink::UDPServer smaller to copy
-------------------------------------+-------------------------------------
Reporter: vorner | Owner:
Type: task | Status: new
Priority: major | Milestone: A-Team-
Component: Unclassified | Sprint-20110209
Sensitive: 0 | Keywords:
Add Hours to Ticket: 0 | Estimated Number of Hours: 0
Total Hours: 0 | Billable?: 1
| Internal?: 0
-------------------------------------+-------------------------------------
Currently 8% of runtime is spent on copying and destroying instances of
UDPServer. While this is a problem by itself, solving this will be part of
larger refactoring (it is a result of how the coroutines work). The
intermediate solution to make the cost of copying less significant is by
using the pimpl design pattern. If we put all important data into the
private part that is not copied and have single shared pointer inside the
UDPServer itself, the overhead should get significantly lower.
There are two variables (bytes_ and done_) that are not shared between
instances right now, so care should be taken with them.
Also, some shared pointers inside the private part might be changed to
auto_ptrs, as the private part should never be copied.
--
Ticket URL: <https://bind10.isc.org/ticket/537>
BIND 10 Development <http://bind10.isc.org>
BIND 10 Development
More information about the bind10-tickets
mailing list