BIND 10 #538: Make isc::dns::Name reside in continuous block of memory.

BIND 10 Development do-not-reply at isc.org
Wed Jan 26 21:03:07 UTC 2011


#538: Make isc::dns::Name reside in continuous block of memory.
-------------------------------------+-------------------------------------
           Reporter:  vorner         |                      Owner:
               Type:  task           |                     Status:  new
           Priority:  minor          |                  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
-------------------------------------+-------------------------------------
 We have a lot operations with Names in the code, comparing names takes 16%
 of runtime, which is mostly caused by cache misses.

 The amount of cache misses could be lowered by factor of at last 3 if the
 whole Name and it's data resides in one continuous block of memory (it
 will be either retrieved as a single cache line or at last predicted by
 CPU prediction heuristics).

 It can be accomplished for example by not using stl string and vector, but
 C strings and arrays. The memory can be allocated before calling the
 actual constructor, passing the pointer to memory both to new and using
 pointer arithmetics on this pointer in constructor to place the actual
 data behind it. The constructor should not be directly visible then and a
 wrapper function would have to be used to hide this, possibly error-prone,
 logic.

 As this is quite a lot of work, we should try handling the easier tasks
 first and see if it helps enough. Therefore I'm giving it a lower
 priority.

-- 
Ticket URL: <https://bind10.isc.org/ticket/538>
BIND 10 Development <http://bind10.isc.org>
BIND 10 Development


More information about the bind10-tickets mailing list