From: Karsten Blees Date: Wed, 18 Jun 2014 15:14:42 GMT Subject: Re: [PATCH v5 10/11] trace: add trace_performance facility to debug performance issues Message-ID: <53A1ACE2.30406@gmail.com> In-Reply-To: Am 17.06.2014 19:11, schrieb Junio C Hamano: > Karsten Blees writes: > >> Simple use case (measure one code section): >> >> uint64_t start = getnanotime(); >> /* code section to measure */ >> trace_performance_since(start, "foobar"); >> >> Medium use case (measure consecutive code sections): >> >> uint64_t start = getnanotime(); >> /* first code section to measure */ >> start = trace_performance_since(start, "first foobar"); >> /* second code section to measure */ >> trace_performance_since(start, "second foobar"); >> >> Complex use case (measure repetitive code sections): >> >> uint64_t t = 0; >> for (;;) { >> /* ignore */ >> t -= getnanotime(); >> /* code section to measure */ >> t += getnanotime(); >> /* ignore */ >> } >> trace_performance(t, "frotz"); > > Hmph. Even though trace_performance() makes an extra call to > getnanotime() in order to return, examples do not use the returned > value? The second example is a good illustration why it makes sense > for trace_performance_since(), though. > Right, it makes no sense for trace_performance(), and for trace_performance_since() only if followed by another 'measured' code section. In that special case, I think it wouldn't hurt if you had to write: uint64_t start = getnanotime(); /* first code section to measure */ trace_performance_since(start, "first foobar"); start = getnanotime(); /* second code section to measure */ trace_performance_since(start, "second foobar"); So I guess I'll drop the return value (and the second example, which is then redundant to the first). >> +static void trace_performance_vfl(const char *file, int line, >> + uint64_t nanos, const char *format, >> + va_list ap) >> +{ > > Just being curious, but what does "v" stand for? > trace_performance_vfl(, va_list) vs. trace_performance_fl(, ...) Will change to trace_performance_vprintf_fl() -- -- *** Please reply-to-all at all times *** *** (do not pretend to know who is subscribed and who is not) *** *** Please avoid top-posting. *** The msysGit Wiki is here: https://github.com/msysgit/msysgit/wiki - Github accounts are free. You received this message because you are subscribed to the Google Groups "msysGit" group. To post to this group, send email to msysgit@googlegroups.com To unsubscribe from this group, send email to msysgit+unsubscribe@googlegroups.com For more options, and view previous threads, visit this group at http://groups.google.com/group/msysgit?hl=en_US?hl=en --- You received this message because you are subscribed to the Google Groups "msysGit" group. To unsubscribe from this group and stop receiving emails from it, send an email to msysgit+unsubscribe@googlegroups.com. For more options, visit https://groups.google.com/d/optout.