BIND 10 #241: review: benchmark framework

BIND 10 Development do-not-reply at isc.org
Mon Aug 9 17:56:31 UTC 2010


#241: review: benchmark framework
-------------------------------+--------------------------------------------
      Reporter:  jinmei        |        Owner:  jinmei                     
          Type:  enhancement   |       Status:  reviewing                  
      Priority:  major         |    Milestone:  06. 4th Incremental Release
     Component:  Unclassified  |   Resolution:                             
      Keywords:                |    Sensitive:  0                          
Estimatedhours:                |        Hours:                             
      Billable:  1             |   Totalhours:                             
      Internal:  0             |  
-------------------------------+--------------------------------------------
Changes (by jelte):

  * owner:  UnAssigned => jinmei


Comment:

 Had a discussion on jabber about the changes; summary is that I see no
 reason not to merge it as it is, with the reservations i had being added
 to the documentation as future work.

 --

 (07:06:57 PM) jelte: i was wondering, should we have separate directories
 like we do for normal unittests?
 (07:08:11 PM) jelte: the thing being that benchmark_util contains mostly
 libdns++-specific stuff :)
 (07:09:23 PM) jelte: also i was thinking if we could make it more like
 gtest (in that we wouldn't need to define main(), and for trivial cases
 not even subclass something, but have macros), but that could perhaps be
 added later, in general i think the code looks ok afaict
 (07:09:25 PM) jinmei: as for separate directories I don't have a strong
 opinion, but the initial idea was to make separate benchmark directories
 for different modules
 (07:09:37 PM) jinmei: e.g. src/lib/dns/benchmarks
 (07:09:37 PM) jelte: right, i thought so
 (07:09:56 PM) jinmei: I'm not sure if the second point is related to the
 directory issue
 (07:09:59 PM) jelte: making the benchmark dir not much more than that
 header file :)
 (07:10:02 PM) jelte: no it isn't :)
 (07:10:25 PM) jinmei: I
 (07:10:31 PM) jinmei: oops mistyped
 (07:10:37 PM) jelte: but it occurred to me while i was reading through the
 example again :)
 (07:11:35 PM) jinmei: as for the second point, I know that.
 (07:12:32 PM) jinmei: maybe we'll have other benchmark utils that are not
 so specific to DNS here.
 (07:13:00 PM) jinmei: e.g. we may want to do some network I/O specific
 benchmarks and we want to have utilities for that
 (07:13:20 PM) jinmei: but honestly I don't know how it will evolve
 (07:14:00 PM) jelte: well if we keep the framework separate, and decide on
 lib/dns/benchmarks/ than what's currently in benchmark_util.* could go
 there i think
 (07:14:27 PM) jelte: yeah that was my other thing, it looks ok to me right
 now, but once we start writing other benchmarks we're bound to run into
 things :)
 (07:15:18 PM) jinmei: ah
 (07:15:46 PM) jinmei: first off, the current benchmark_util is actually
 not intended to be used for libdns++.
 (07:16:05 PM) jinmei: the intended primary intended user is the auth
 server
 (07:16:26 PM) jinmei: with clarifying this,
 (07:16:45 PM) jinmei: the question is whether this should better be placed
 in src/bin/auth/benchmarks for example.
 (07:16:52 PM) jelte: right
 (07:17:15 PM) jinmei: again, I don't have a strong opinion,
 (07:17:56 PM) jinmei: but it's quite likely we'd want to have something
 like this for the caching (recursive) server.
 (07:18:09 PM) jelte: noting that some of our unit tests are still not
 living in their own directory :)
 (07:18:31 PM) jinmei: yeah, I've been aware of that
 (07:19:15 PM) jinmei: as for making it gtest-like, yes, that makes sense
 (07:19:59 PM) jinmei: and I sort of tried to achieve that type of goal in
 the initial design/implementation,
 (07:20:08 PM) jinmei: and I also admit this could be improved
 (07:21:32 PM) jelte: it does not have to stop us from including this as it
 is
 (07:22:23 PM) jinmei: so, for now, I'd add some description to the doxygen
 comments:
 (07:22:54 PM) jelte: oh and a more code-specific issue; benchmark.h can
 use some empty lines :)
 (07:23:03 PM) jinmei: - the design of benchmark.h may be changed so that
 it will be set up more easily.
 (07:23:42 PM) jelte: every function right now is immediately followed by
 the doxygen for the next one, which makes reading through it a bit harder
 than it needs to be
 (07:23:43 PM) jinmei: - benchmark_util may be too specific to be placed
 here, and we'll see if it should stay here or move to more appropriate
 benchmark cases.
 (07:23:54 PM) jinmei: okay
 (07:24:01 PM) jinmei: > empty lines
 (07:24:51 PM) jinmei: maybe we should add this to coding guideline?
 (07:25:00 PM) jinmei: or is it too minor?
 (07:26:25 PM) jelte: perhaps we should, i have also been reprimanded by
 michael for not using enough vertical space at one point :)
 (07:27:43 PM) jinmei: blank lines added (r2660)
 (07:29:17 PM) jelte: much better :)
 (07:39:13 PM) fujiwara entered the room.
 (07:40:51 PM) jreed: "style fix: added blank lines between blocks of
 (function + its description)" sounds good for style guide too.

 (07:41:39 PM) jreed: not sure if it is important for following function,
 but for a gap before previous lines.
 (07:45:17 PM) jinmei: added a note about future possible extension to the
 benchmark (i.e. making it gtest-like).
 (07:45:19 PM) jinmei: r2661
 (07:48:21 PM) jelte: looks good

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


More information about the bind10-tickets mailing list