[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