BIND 10 #1752: Measure performance hit of per-message filtering

BIND 10 Development do-not-reply at isc.org
Fri Mar 23 13:36:45 UTC 2012


#1752: Measure performance hit of per-message filtering
-------------------------------------+-------------------------------------
                   Reporter:         |                 Owner:  UnAssigned
  vorner                             |                Status:  reviewing
                       Type:  task   |             Milestone:
                   Priority:         |  Sprint-20120403
  medium                             |            Resolution:
                  Component:         |             Sensitive:  0
  logging                            |           Sub-Project:  Core
                   Keywords:         |  Estimated Difficulty:  4
            Defect Severity:  N/A    |           Total Hours:  0
Feature Depending on Ticket:         |
        Add Hours to Ticket:  0      |
                  Internal?:  0      |
-------------------------------------+-------------------------------------
Changes (by vorner):

 * owner:  vorner => UnAssigned
 * status:  accepted => reviewing


Comment:

 Since the branch is not meant for merging, it is kind of messy and
 destructive to the rest of the code, as it is not interesting. This means
 most of the new code does not follow some of the coding guidelines, like
 having tests or copyright headers. Also, as it changes the interface of
 some of the logging functions (which should not be used through the code
 much, but are used in tests), parts of the codebase don't compile. This
 does not matter, as it is not interesting part of the code for the
 benchmark. If you want to retry the benchmarks, compile the HEAD^^ first,
 then checkout the newer ones and compile lib/log (ignore errors from
 tests) and then bin/log-bench. Also, redirect stderr to /dev/null (that's
 where the messages that are logged go) to see the real output. The first
 line is when the messages are not logged and the second is when they are.

 Each of the commits was used to produce a measurement.

 The first one is when there's no map inside the logger (current state).
 {{{
 Performed 100000000 iterations in 1.161238s (86114991.07ips)
 Performed 1000000 iterations in 4.492033s (222616.35ips)
 }}}

 The second one is with empty map being checked:
 {{{
 Performed 100000000 iterations in 1.598341s (62564871.95ips)
 Performed 1000000 iterations in 4.184277s (238989.91ips)
 }}}

 The third is with a map with few items inside:
 {{{
 Performed 100000000 iterations in 1.789868s (55870041.81ips)
 Performed 1000000 iterations in 4.434649s (225496.99ips)
 }}}

 I'd like someone to have a short look through the changes if I'm not doing
 something completely stupid before I post it to the mailing list and
 reinitialize the discussion.

 Thanks

-- 
Ticket URL: <http://bind10.isc.org/ticket/1752#comment:4>
BIND 10 Development <http://bind10.isc.org>
BIND 10 Development


More information about the bind10-tickets mailing list