Subject: Re: [PATCH v5 10/11] trace: add trace_performance facility to debug performance issues

From: Karsten Blees <[email-masked]>
Date: Wed, 18 Jun 2014 17:14:42 +0200

Am 17.06.2014 19:11, schrieb Junio C Hamano:
> Karsten Blees <[email-masked]> 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 [email-masked]
To unsubscribe from this group, send email to
[email-masked]
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 [email-masked].
For more options, visit https://groups.google.com/d/optout.