##// END OF EJS Templates
hgweb: tweak zlib chunking behavior...
hgweb: tweak zlib chunking behavior When doing streaming compression with zlib, zlib appears to emit chunks with data after ~20-30kb on average is available. In other words, most calls to compress() return an empty string. On the mozilla-unified repo, only 48,433 of 921,167 (5.26%) of calls to compress() returned data. In other words, we were sending hundreds of thousands of empty chunks via a generator where they touched who knows how many frames (my guess is millions). Filtering out the empty chunks from the generator cuts down on overhead. In addition, we were previously feeding 8kb chunks into zlib compression. Since this function tends to emit *compressed* data after 20-30kb is available, it would take several calls before data was produced. We increase the amount of data fed in at a time to 32kb. This reduces the number of calls to compress() from 921,167 to 115,146. It also reduces the number of output chunks from 48,433 to 31,377. This does increase the average output chunk size by a little. But I don't think this will matter in most scenarios. The combination of these 2 changes appears to shave ~6s CPU time or ~3% from a server serving the mozilla-unified repo.

File last commit:

r26666:e901df65 default
r29792:58467204 default
Show More
changeset.tmpl
57 lines | 2.2 KiB | application/x-cheetah | CheetahLexer
Dan Villiom Podlaski Christiansen
setup: install translation files as package data...
r9999 {header}
<title>{repo|escape}: changeset {rev}:{node|short}</title>
<link rel="alternate" type="application/atom+xml"
Thomas Arendsen Hein
hgweb: urlescape all urls, HTML escape repo/tag/branch/... names...
r18526 href="{url|urlescape}atom-log" title="Atom feed for {repo|escape}"/>
Dan Villiom Podlaski Christiansen
setup: install translation files as package data...
r9999 <link rel="alternate" type="application/rss+xml"
Thomas Arendsen Hein
hgweb: urlescape all urls, HTML escape repo/tag/branch/... names...
r18526 href="{url|urlescape}rss-log" title="RSS feed for {repo|escape}"/>
Dan Villiom Podlaski Christiansen
setup: install translation files as package data...
r9999 </head>
<body>
<div class="page_header">
Angel Ezquerra <angel.ezquerra at gmail.com>
hgweb: add a "URL breadcrumb" to the index and repository pages...
r18258 <a href="{logourl}" title="Mercurial" style="float: right;">Mercurial</a>
<a href="/">Mercurial</a> {pathdef%breadcrumb} / changeset
Dan Villiom Podlaski Christiansen
setup: install translation files as package data...
r9999 </div>
<div class="page_nav">
Thomas Arendsen Hein
hgweb: urlescape all urls, HTML escape repo/tag/branch/... names...
r18526 <a href="{url|urlescape}summary{sessionvars%urlparameter}">summary</a> |
av6
hgweb: don't dereference symbolic revision in gitweb style...
r25605 <a href="{url|urlescape}shortlog/{symrev}{sessionvars%urlparameter}">shortlog</a> |
<a href="{url|urlescape}log/{symrev}{sessionvars%urlparameter}">changelog</a> |
av6
gitweb: don't drop current revision context on graph page...
r26666 <a href="{url|urlescape}graph/{symrev}{sessionvars%urlparameter}">graph</a> |
Thomas Arendsen Hein
hgweb: urlescape all urls, HTML escape repo/tag/branch/... names...
r18526 <a href="{url|urlescape}tags{sessionvars%urlparameter}">tags</a> |
<a href="{url|urlescape}bookmarks{sessionvars%urlparameter}">bookmarks</a> |
<a href="{url|urlescape}branches{sessionvars%urlparameter}">branches</a> |
av6
hgweb: don't dereference symbolic revision in gitweb style...
r25605 <a href="{url|urlescape}file/{symrev}{sessionvars%urlparameter}">files</a> |
Dan Villiom Podlaski Christiansen
setup: install translation files as package data...
r9999 changeset |
av6
hgweb: don't dereference symbolic revision in gitweb style...
r25605 <a href="{url|urlescape}raw-rev/{symrev}">raw</a> {archives%archiveentry} |
Thomas Arendsen Hein
hgweb: urlescape all urls, HTML escape repo/tag/branch/... names...
r18526 <a href="{url|urlescape}help{sessionvars%urlparameter}">help</a>
Augie Fackler
web: add a help view for getting hg help output
r12666 <br/>
Dan Villiom Podlaski Christiansen
setup: install translation files as package data...
r9999 </div>
<div>
Thomas Arendsen Hein
hgweb: urlescape all urls, HTML escape repo/tag/branch/... names...
r18526 <a class="title" href="{url|urlescape}raw-rev/{node|short}">{desc|strip|escape|firstline|nonempty} <span class="logtags">{inbranch%inbranchtag}{branches%branchtag}{tags%tagtag}{bookmarks%bookmarktag}</span></a>
Dan Villiom Podlaski Christiansen
setup: install translation files as package data...
r9999 </div>
<div class="title_text">
<table cellspacing="0">
<tr><td>author</td><td>{author|obfuscate}</td></tr>
Brodie Rao
hgweb: fix dynamic date calculation not working under Safari...
r15375 <tr><td></td><td class="date age">{date|rfc822date}</td></tr>
Dan Villiom Podlaski Christiansen
setup: install translation files as package data...
r9999 {branch%changesetbranch}
av6
hgweb: link to revision by node hash in gitweb & monoblue...
r25616 <tr>
<td>changeset {rev}</td>
<td style="font-family:monospace"><a class="list" href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a></td>
</tr>
Anton Shestakov
hgweb: allow viewing diffs against p1 or p2 for merge commits (issue3904)...
r23740 {ifeq(count(parent), '2', parent%changesetparentdiff, parent%changesetparent)}
Dan Villiom Podlaski Christiansen
setup: install translation files as package data...
r9999 {child%changesetchild}
</table></div>
<div class="page_body">
Angel Ezquerra
hgweb: apply the websub filter to revision descriptions...
r18628 {desc|strip|escape|websub|addbreaks|nonempty}
Dan Villiom Podlaski Christiansen
setup: install translation files as package data...
r9999 </div>
<div class="list_head"></div>
<div class="title_text">
<table cellspacing="0">
{files}
</table></div>
av6
gitweb: port code selection without line numbers from paper...
r26288 <div class="page_body diffblocks">{diff}</div>
Dan Villiom Podlaski Christiansen
setup: install translation files as package data...
r9999
{footer}