Mercurial > hg > mercurial-crew-with-dirclash
view templates/map @ 1534:80a3d6a0af71
Optimize manifest.add
Testing shows that manifest.add is spending a significant percentage of
its time running calcoffsets and doing text = "".join(addlist). This
patch removes the need for both of these by storying the manifest in a
character array, and using a modified bisect search to find lines without
the help of a separate index of line offsets.
manifest.add was also reworked to push delta construction/combination into the
main loop.
Time to apply 2751 patches (without psyco, ext3 noatime,data=writeback):
Stock hg: 4m45s real 3m32s user 55s sys
patched: 2m48s real 1m53s user 43s sys
quilt: 2m30s real 45s user 50s sys
(quilt does much more io...)
author | mason@suse.com |
---|---|
date | Fri, 11 Nov 2005 18:20:22 -0800 |
parents | 17703aa4491e |
children | 68ec7b9e09a4 |
line wrap: on
line source
default = "changelog" header = header.tmpl footer = footer.tmpl search = search.tmpl changelog = changelog.tmpl naventry = "<a href="?cl=#rev#">#label#</a> " filedifflink = "<a href="?fd=#node|short#;file=#file#">#file#</a> " filenodelink = "<a href="?f=#filenode|short#;file=#file#">#file#</a> " fileellipses = "..." changelogentry = changelogentry.tmpl searchentry = changelogentry.tmpl changeset = changeset.tmpl manifest = manifest.tmpl manifestdirentry = "<tr class="parity#parity#"><td><tt>drwxr-xr-x</tt> <td><a href="?cmd=manifest;manifest=#manifest#;path=#path#">#basename#/</a>" manifestfileentry = "<tr class="parity#parity#"><td><tt>#permissions|permissions#</tt> <td><a href="?f=#filenode|short#;file=#file#">#basename#</a>" filerevision = filerevision.tmpl fileannotate = fileannotate.tmpl filediff = filediff.tmpl filelog = filelog.tmpl fileline = "<div class="parity#parity#"><span class="lineno">#linenumber#</span>#line|escape#</div>" filelogentry = filelogentry.tmpl annotateline = "<tr class="parity#parity#"><td class="annotate"><a href="?cs=#node|short#">#author|obfuscate#@#rev#</a></td><td><pre>#line|escape#</pre></td></tr>" difflineplus = "<span class="plusline">#line|escape#</span>" difflineminus = "<span class="minusline">#line|escape#</span>" difflineat = "<span class="atline">#line|escape#</span>" diffline = "#line|escape#" changelogparent = "<tr><th class="parent">parent #rev#:</th><td class="parent"><a href="?cs=#node|short#">#node|short#</a></td></tr>" changesetparent = "<tr><th class="parent">parent #rev#:</th><td class="parent"><a href="?cs=#node|short#">#node|short#</a></td></tr>" filerevparent = "<tr><td class="metatag">parent:</td><td><a href="?f=#node|short#;file=#file#">#node|short#</a></td></tr>" fileannotateparent = "<tr><td class="metatag">parent:</td><td><a href="?fa=#filenode|short#;file=#file#">#node|short#</a></td></tr>" tags = tags.tmpl tagentry = "<li class="tagEntry parity#parity#"><span class="node">#node#</span> <a href="?cs=#node|short#">#tag#</a></li>" diffblock = "<pre class="parity#parity#">#lines#</pre>" changelogtag = "<tr><th class="tag">tag:</th><td class="tag">#tag#</td></tr>" changesettag = "<tr><th class="tag">tag:</th><td class="tag">#tag#</td></tr>" filediffparent = "<tr><th class="parent">parent #rev#:</th><td class="parent"><a href="?cs=#node|short#">#node|short#</a></td></tr>" filelogparent = "<tr><td align="right">parent #rev#: </td><td><a href="?f=#node|short#;file=#file#">#node|short#</a></td></tr>" indexentry = "<tr class="parity#parity#"><td><a href="#url#">#name#</a></td><td>#shortdesc#</td><td>#contact|obfuscate#</td><td>#lastupdate|age# ago</td><td><a href="#url#?cl=tip;style=rss">RSS</a></td></tr>" index = index.tmpl archiveentry = "<a href="?ca=#node|short#;type=#type#">#type#</a> " notfound = notfound.tmpl