BIND 10 #1568: Change throw to assert to gain performance

BIND 10 Development do-not-reply at isc.org
Mon Mar 12 21:09:57 UTC 2012


#1568: Change throw to assert to gain performance
-------------------------------------+-------------------------------------
                   Reporter:         |                 Owner:  vorner
  vorner                             |                Status:  reviewing
                       Type:         |             Milestone:
  enhancement                        |  Sprint-20120320
                   Priority:         |            Resolution:
  medium                             |             Sensitive:  0
                  Component:         |           Sub-Project:  DNS
  b10-auth                           |  Estimated Difficulty:  0
                   Keywords:         |           Total Hours:  0
            Defect Severity:  N/A    |
Feature Depending on Ticket:         |
  performance                        |
        Add Hours to Ticket:  0      |
                  Internal?:  0      |
-------------------------------------+-------------------------------------

Comment (by vorner):

 So, I measured it (and noticed a test was failing for the original branch
 ‒ but I'd solve only if we go for it). The results are as follows:

 The original, unchanged (with changes from #1603):
 {{{
 Parameters:
   Iterations: 100000
 Benchmark for old MessageRenderer (positive response)
 Performed 4200000 iterations in 5.414628s (775676.56ips)
 Benchmark for dumb MessageRenderer (positive response)
 Performed 4200000 iterations in 0.307879s (13641722.88ips)
 Benchmark for new MessageRenderer (positive response)
 Performed 4200000 iterations in 0.982537s (4274648.18ips)
 Benchmark for old MessageRenderer (NXDOMAIN response)
 Performed 400000 iterations in 0.327549s (1221191.33ips)
 Benchmark for dumb MessageRenderer (NXDOMAIN response)
 Performed 400000 iterations in 0.006059s (66017494.64ips)
 Benchmark for new MessageRenderer (NXDOMAIN response)
 Performed 400000 iterations in 0.110053s (3634612.41ips)
 Benchmark for old MessageRenderer (SERVFAIL response)
 Performed 100000 iterations in 0.027959s (3576665.83ips)
 Benchmark for dumb MessageRenderer (SERVFAIL response)
 Performed 100000 iterations in 0.001662s (60168471.72ips)
 Benchmark for new MessageRenderer (SERVFAIL response)
 Performed 100000 iterations in 0.033245s (3007971.12ips)
 }}}

 With the assert (applied to #1603, now trac1568_new):
 {{{
 Parameters:
   Iterations: 100000
 Benchmark for old MessageRenderer (positive response)
 Performed 4200000 iterations in 1.967427s (2134767.90ips)
 Benchmark for dumb MessageRenderer (positive response)
 Performed 4200000 iterations in 0.144562s (29053278.18ips)
 Benchmark for new MessageRenderer (positive response)
 Performed 4200000 iterations in 0.699861s (6001191.67ips)
 Benchmark for old MessageRenderer (NXDOMAIN response)
 Performed 400000 iterations in 0.131807s (3034740.19ips)
 Benchmark for dumb MessageRenderer (NXDOMAIN response)
 Performed 400000 iterations in 0.006047s (66148503.39ips)
 Benchmark for new MessageRenderer (NXDOMAIN response)
 Performed 400000 iterations in 0.087616s (4565376.19ips)
 Benchmark for old MessageRenderer (SERVFAIL response)
 Performed 100000 iterations in 0.023528s (4250255.02ips)
 Benchmark for dumb MessageRenderer (SERVFAIL response)
 Performed 100000 iterations in 0.001675s (59701492.54ips)
 Benchmark for new MessageRenderer (SERVFAIL response)
 Performed 100000 iterations in 0.030313s (3298914.66ips)
 }}}

 And with the private method (pushed as track1568_method):
 {{{
 Parameters:
   Iterations: 100000
 Benchmark for old MessageRenderer (positive response)
 Performed 4200000 iterations in 3.635178s (1155376.71ips)
 Benchmark for dumb MessageRenderer (positive response)
 Performed 4200000 iterations in 0.169868s (24725080.65ips)
 Benchmark for new MessageRenderer (positive response)
 Performed 4200000 iterations in 0.855160s (4911361.62ips)
 Benchmark for old MessageRenderer (NXDOMAIN response)
 Performed 400000 iterations in 0.230515s (1735244.99ips)
 Benchmark for dumb MessageRenderer (NXDOMAIN response)
 Performed 400000 iterations in 0.006246s (64040986.23ips)
 Benchmark for new MessageRenderer (NXDOMAIN response)
 Performed 400000 iterations in 0.096402s (4149291.51ips)
 Benchmark for old MessageRenderer (SERVFAIL response)
 Performed 100000 iterations in 0.022769s (4391936.40ips)
 Benchmark for dumb MessageRenderer (SERVFAIL response)
 Performed 100000 iterations in 0.001805s (55401662.05ips)
 Benchmark for new MessageRenderer (SERVFAIL response)
 Performed 100000 iterations in 0.032079s (3117304.16ips)
 }}}

 So there seems to be some difference. Let's wait for tomorrow call and
 discuss it over.

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


More information about the bind10-tickets mailing list