comparison hgext/children.py @ 17962:4c29668ca316 stable

util: make chunkbuffer non-quadratic on Windows The old str-based += collector performed very nicely on Linux, but turns out to be quadratically expensive on Windows, causing chunkbuffer to dominate in profiles. This list-based version has been measured to significantly improve performance with large chunks on Windows, with negligible overall overhead on Linux (though microbenchmarks show it to be about 50% slower). This may increase memory overhead where += didn't behave quadratically. If we want to gather up 1G of data to join, we temporarily have 1G in our list and 1G in our string.
author Matt Mackall <mpm@selenic.com>
date Mon, 26 Nov 2012 15:42:52 -0600
parents 434e5bd615fc
children 48e859e30cbf
comparison
equal deleted inserted replaced
17961:b0affcb67cba 17962:4c29668ca316