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

[PATCH 0/7] textconv caching

From
Jeff King <peff@peff.net>
Date
Apr 2, 2010, 00:01 UTC
Message-ID
<20100402000159.GA15101@coredump.intra.peff.net>

This is replacement for my fast-textconv series from a week ago. It's much faster, and doesn't require the user to do any additional work when writing or configuring a textconv helper. The cache is stored as a notes tree.

On my sample commit, 45 jpegs and avi files with their metadata changed, and a textconv helper that extracts the metadata, the speedup is:

  [before]
  $ time git show >/dev/null
  real    0m13.724s
  user    0m12.057s
  sys     0m1.624s
  [after (with cache primed)]
  $ time git show >/dev/null
  real    0m0.009s
  user    0m0.004s
  sys     0m0.004s

If you just blinked at those numbers, yes, it really is that much faster. The caching dropped it to about .35 seconds, which I showed in an earlier "how about this" patch. The rest of it comes from patch 7/7, where we can avoid even opening the binary blobs at all (in my sample, they total about 180M).

The patches are:
  [1/7]: fix const-correctness of write_sha1_file
  [2/7]: fix textconv leak in emit_rewrite_diff
  [3/7]: make commit_tree a library function
  [4/7]: introduce notes-cache interface
  [5/7]: textconv: refactor calls to run_textconv
  [6/7]: diff: cache textconv output
  [7/7]: diff: avoid useless filespec population
-Peff
Next: Jeff King
Message 1 of 13 in “textconv caching”
  1. 0/7 textconv cachingJeff King, Apr 2, 2010
  2. 1/7 fix const-correctness of write_sha1_fileJeff King, Apr 2, 2010
  3. 2/7 fix textconv leak in emit_rewrite_diffJeff King, Apr 2, 2010
  4. 3/7 make commit_tree a library functionJeff King, Apr 2, 2010
  5. 4/7 introduce notes-cache interfaceJeff King, Apr 2, 2010
  6. 5/7 textconv: refactor calls to run_textconvJeff King, Apr 2, 2010
  7. 6/7 diff: cache textconv outputJeff King, Apr 2, 2010
  8. Junio C HamanoApr 2, 2010
  9. Jeff KingApr 2, 2010
  10. 7/7 diff: avoid useless filespec populationJeff King, Apr 2, 2010
  11. Junio C HamanoApr 2, 2010
  12. Jeff KingApr 2, 2010
  13. Jeff KingApr 2, 2010

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.