diff options
author | Sebastian Thiel <byronimo@gmail.com> | 2009-10-15 00:06:08 +0200 |
---|---|---|
committer | Sebastian Thiel <byronimo@gmail.com> | 2009-10-15 00:06:08 +0200 |
commit | 1a4bfd979e5d4ea0d0457e552202eb2effc36cac (patch) | |
tree | 10f70f8e41c91f5bf57f04b616f3e5afdb9f8407 /test/git/test_performance.py | |
parent | 7cdfaceebe916c91acdf8de3f9506989bc70ad65 (diff) | |
download | gitpython-1a4bfd979e5d4ea0d0457e552202eb2effc36cac.tar.gz |
test_performance: module containing benchmarks to get an idea of the achieved throughput
repo.commits: max_count is None by default
moved benchmark-like test from test_commit to test_performance
Diffstat (limited to 'test/git/test_performance.py')
-rw-r--r-- | test/git/test_performance.py | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/test/git/test_performance.py b/test/git/test_performance.py new file mode 100644 index 00000000..96f13a2e --- /dev/null +++ b/test/git/test_performance.py @@ -0,0 +1,38 @@ +# test_performance.py +# Copyright (C) 2008, 2009 Michael Trier (mtrier@gmail.com) and contributors +# +# This module is part of GitPython and is released under +# the BSD License: http://www.opensource.org/licenses/bsd-license.php + +from test.testlib import * +from git import * +from time import time + +class TestPerformance(object): + def setup(self): + self.repo = Repo(GIT_REPO) + + def test_iteration(self): + num_objs = 0 + num_commits = 0 + + # find the first commit containing the given path - always do a full + # iteration ( restricted to the path in question ), but in fact it should + # return quite a lot of commits, we just take one and hence abort the operation + + st = time() + for c in self.repo.commits(): + num_commits += 1 + c.author + c.authored_date + c.committer + c.committed_date + c.message + for obj in c.tree.traverse(): + obj.size + num_objs += 1 + # END for each object + # END for each commit + elapsed_time = time() - st + print "Traversed %i Trees and a total of %i unchached objects in %s [s] ( %f objs/s )" % (num_commits, num_objs, elapsed_time, num_objs/elapsed_time) + |