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