Marcus Griep <marcus@xxxxxxxx> writes: > Currently, git-svn would create a temp file on four occasions: > 1. Reading a blob out of the object db > 2. Creating a delta from svn > 3. Hashing and writing a blob into the object db > 4. Reading a blob out of the object db (in another place in code) > > Any time git-svn did the above, it would dutifully create and then > delete said temp file. Unfortunately, this means that between 2-4 > temporary files are created/deleted per file 'add/modify'-ed in > svn (O(n)). This causes significant overhead and helps the inode > counter to spin beautifully. > > By its nature, git-svn is a serial beast. Thus, reusing a temp file > does not pose significant problems. "truncate and seek" takes much > less time than "unlink and create". This patch centralizes the > tempfile creation and holds onto the tempfile until they are deleted > on exit. This significantly reduces file overhead, now requiring > at most three (3) temp files per run (O(1)). Beautifully written analysis of the issue being tackled. But optimization patch should be backed by numbers --- do you have a benchmark result of some sort that you would want to include here? -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html