Re: [PATCH v5 10/11] trace: add trace_performance facility to debug performance issues
- From
Karsten Blees <karsten.blees@gmail.com>
- Date
- Jun 18, 2014, 15:14 UTC
- Message-ID
- <53A1ACE2.30406@gmail.com>
- In-Reply-To
- <xmqqsin3mpfe.fsf@gitster.dls.corp.google.com>
Am 17.06.2014 19:11, schrieb Junio C Hamano:
Show 33 quoted lines
> Karsten Blees <karsten.blees@gmail.com> 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).
Show 7 quoted lines
>> +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.