Am 17.06.2014 19:11, schrieb Junio C Hamano:
> Karsten Blees <[email protected]> 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()
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html