~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/benchmarks/bench_workingtree.py

  • Committer: John Arbash Meinel
  • Date: 2006-10-11 23:08:27 UTC
  • mto: This revision was merged to the branch mainline in revision 2080.
  • Revision ID: john@arbash-meinel.com-20061011230827-2bdfc45020695281
Change Copyright .. by Canonical to Copyright ... Canonical

Show diffs side-by-side

added added

removed removed

Lines of Context:
18
18
 
19
19
import os
20
20
 
21
 
from bzrlib import ignores
22
21
from bzrlib.benchmarks import Benchmark
23
22
from bzrlib.workingtree import WorkingTree
24
23
 
25
24
 
26
25
class WorkingTreeBenchmark(Benchmark):
27
 
    """Benchmarks for `bzrlib.workingtree` performance."""
28
26
 
29
27
    def test_list_files_kernel_like_tree(self):
30
28
        tree = self.make_kernel_like_added_tree()
31
 
        tree.lock_read()
32
 
        try:
33
 
            self.time(list, tree.list_files())
34
 
        finally:
35
 
            tree.unlock()
 
29
        self.time(list, tree.list_files())
36
30
 
37
31
    def test_list_files_unknown_kernel_like_tree(self):
38
32
        tree = self.make_kernel_like_tree(link_working=True)
46
40
            if root == '.':
47
41
                continue
48
42
            tree.add(root)
49
 
        tree.lock_read()
50
 
        try:
51
 
            self.time(list, tree.list_files())
52
 
        finally:
53
 
            tree.unlock()
 
43
        self.time(list, tree.list_files())
54
44
 
55
45
    def test_is_ignored_single_call(self):
56
46
        """How long does is_ignored take to initialise and check one file."""
64
54
            for x in xrange(10824):
65
55
                t.is_ignored(str(x))
66
56
        self.time(call_is_ignored_10824_not_ignored)
67
 
 
68
 
    def test_is_ignored_10_patterns(self):
69
 
        t = self.make_branch_and_tree('.')
70
 
        ignores.add_runtime_ignores([u'*.%i' % i for i in range(1, 9)])
71
 
        ignores.add_runtime_ignores(['./foo', 'foo/bar'])
72
 
        self.time(t.is_ignored,'bar')
73
 
        ignores._runtime_ignores = set()
74
 
 
75
 
    def test_is_ignored_50_patterns(self):
76
 
        t = self.make_branch_and_tree('.')
77
 
        ignores.add_runtime_ignores([u'*.%i' % i for i in range(1, 49)])
78
 
        ignores.add_runtime_ignores(['./foo', 'foo/bar'])
79
 
        self.time(t.is_ignored,'bar')
80
 
        ignores._runtime_ignores = set()
81
 
 
82
 
    def test_is_ignored_100_patterns(self):
83
 
        t = self.make_branch_and_tree('.')
84
 
        ignores.add_runtime_ignores([u'*.%i' % i for i in range(1, 99)])
85
 
        ignores.add_runtime_ignores(['./foo', 'foo/bar'])
86
 
        self.time(t.is_ignored,'bar')
87
 
        ignores._runtime_ignores = set()
88
 
 
89
 
    def test_is_ignored_1000_patterns(self):
90
 
        t = self.make_branch_and_tree('.')
91
 
        ignores.add_runtime_ignores([u'*.%i' % i for i in range(1, 999)])
92
 
        ignores.add_runtime_ignores(['./foo', 'foo/bar'])
93
 
        self.time(t.is_ignored,'bar')
94
 
        ignores._runtime_ignores = set()
95
 
 
96
 
    def test_walkdirs_kernel_like_tree(self):
97
 
        """Walking a kernel sized tree is fast!(150ms)."""
98
 
        self.make_kernel_like_tree()
99
 
        self.run_bzr('add')
100
 
        tree = WorkingTree.open('.')
101
 
        # on roberts machine: this originally took:  157ms/4177ms
102
 
        # plain os.walk takes 213ms on this tree
103
 
        self.time(list, tree.walkdirs())
104
 
 
105
 
    def test_walkdirs_kernel_like_tree_unknown(self):
106
 
        """Walking a kernel sized tree is fast!(150ms)."""
107
 
        self.make_kernel_like_tree()
108
 
        tree = WorkingTree.open('.')
109
 
        # on roberts machine: this originally took:  157ms/4177ms
110
 
        # plain os.walk takes 213ms on this tree
111
 
        self.time(list, tree.walkdirs())