[MERGE] log|less 590% to 727% faster
John Arbash Meinel
john at arbash-meinel.com
Sat Jun 17 18:14:34 BST 2006
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Aaron Bentley wrote:
> Hi all,
>
> Here's the patch that changes show_log so it gets revisions in chunks of
> increasing size. In some sense, this is cheating. In some other
> sense, it's just doing what will make the user happiest.
>
> This builds on my previous log-performance enhancements.
>
> I found that an initial size of 9 revisions and a scaling factor of 1.5
> worked the best across the various log formatters, and had negligible
> impact on the time it takes to output all logs.
>
> Pre:bzrlib.benchmarks.bench_log.LogBenchmark.test_log OK
> 404ms/12633ms
> ...b.benchmarks.bench_log.LogBenchmark.test_log_screenful OK 316ms/
> 7431ms
> ...chmarks.bench_log.LogBenchmark.test_log_screenful_line OK 325ms/
> 7614ms
> ...hmarks.bench_log.LogBenchmark.test_log_screenful_short OK 320ms/
> 7370ms
>
> Post:
> bzrlib.benchmarks.bench_log.LogBenchmark.test_log OK 394ms/
> 9283ms
> ...b.benchmarks.bench_log.LogBenchmark.test_log_screenful OK 44ms/
> 7294ms
> ...chmarks.bench_log.LogBenchmark.test_log_screenful_line OK 55ms/
> 7200ms
> ...hmarks.bench_log.LogBenchmark.test_log_screenful_short OK 44ms/
> 7176ms
>
>
> Aaron
The only diff I see here is the change to the test suite.
At the same time, seems like you did good work.
After working with the http stuff, I'm thinking about moving the range
collapsing code into the base level Transport, so that we can make it
easier for all transports to benefit.
John
=:->
- ------------------------------------------------------------------------
=== modified file 'bzrlib/benchmarks/bench_log.py'
- --- bzrlib/benchmarks/bench_log.py 2006-06-17 16:31:09 +0000
+++ bzrlib/benchmarks/bench_log.py 2006-06-17 16:36:50 +0000
@@ -53,6 +53,9 @@
def test_log_screenful_line(self):
self.screenful_tester('line')
+ def test_log_screenful_short(self):
+ self.screenful_tester('short')
+
def screenful_tester(self, formatter):
tree = self.make_many_commit_tree()
def log_screenful():
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.0 (Darwin)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org
iD8DBQFElDh6JdeBCYSNAAMRApNmAKCAHkpphokBZXoXAvV+7jYhijLu5QCgqCIt
nuYtRrMV6GBoCsTEkDRWjvk=
=XjAL
-----END PGP SIGNATURE-----
More information about the bazaar
mailing list