git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [RFC/PATCH v4 2/3] add trace_performance facility to debug performance issues

From
Karsten Blees <karsten.blees@gmail.com>
Date
May 21, 2014, 18:34 UTC
Message-ID
<537CF1C7.6030408@gmail.com>
In-Reply-To
<20140521165806.GD2040@sigill.intra.peff.net>
Am 21.05.2014 18:58, schrieb Jeff King:
Show 22 quoted lines
> On Tue, May 20, 2014 at 09:11:19PM +0200, Karsten Blees wrote:
> 
>> Add trace_performance and trace_performance_since macros that print file
>> name, line number, time and an optional printf-formatted text to the file
>> specified in environment variable GIT_TRACE_PERFORMANCE.
>>
>> Unless enabled via GIT_TRACE_PERFORMANCE, these macros have no noticeable
>> impact on performance, so that test code may be shipped in release builds.
>>
>> MSVC: variadic macros (__VA_ARGS__) require VC++ 2005 or newer.
> 
> I think we still have some Unix compilers that do not do variadic
> macros, either. For a while, people were compiling with antique stuff
> like SUNWspro and MIPSpro. I don't know if they still do, if they use
> gcc on such systems now, or if those systems have finally been
> decomissioned.
> 
> But either we need to change our stance on variadic macros, or this
> feature needs to be able to be compiled conditionally.
> 
> -Peff
> 
Macros are mainly used to supply __FILE__ and __LINE__, so that lazy people don't need to think of a unique message for each use of trace_performance_*. Without __FILE__, __LINE__ and message, the output would be pretty useless (i.e. just the time without any additional info).
If there's platforms that don't support variadic macros, I'd suggest to drop the __FILE__ __LINE__ feature completely and make message mandatory (with the added benefit that manually provided messages don't change if the code is moved, i.e. trace logs would become somewhat comparable across versions).
(adding cc: Dscho as IIRC the __FILE__ __LINE__ idea was originally his).
-- 
-- 
*** 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.
Previous: Jeff KingNext: Jeff King
Message 9 of 17 in “add high resolution timer function to debug performance issues”
  1. 1/3 add high resolution timer function to debug performance issuesKarsten Blees, May 20, 2014
  2. Noel GrandinMay 21, 2014
  3. Karsten BleesMay 21, 2014
  4. Richard HansenMay 21, 2014
  5. Richard HansenMay 21, 2014
  6. Karsten BleesMay 22, 2014
  7. 2/3 add trace_performance facility to debug performance issuesKarsten Blees, May 20, 2014
  8. Jeff KingMay 21, 2014
  9. Karsten BleesMay 21, 2014
  10. Jeff KingMay 21, 2014
  11. 3/3 add command performance tracing to debug scripted commandsKarsten Blees, May 20, 2014
  12. Jeff KingMay 21, 2014
  13. Junio C HamanoMay 21, 2014
  14. Karsten BleesMay 22, 2014
  15. Jeff KingMay 22, 2014
  16. Karsten BleesMay 23, 2014
  17. Jeff KingMay 23, 2014

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.