Mercurial > p > roundup > code
annotate test/benchmark.py @ 7873:867418c24339
chore: remove pdb invocation.
| author | John Rouillard <rouilj@ieee.org> |
|---|---|
| date | Wed, 10 Apr 2024 12:57:37 -0400 |
| parents | 163d2c60fdf3 |
| children | 7a3392f1f7ac |
| rev | line source |
|---|---|
|
5376
64b05e24dbd8
Python 3 preparation: convert print to a function.
Joseph Myers <jsm@polyomino.org.uk>
parents:
2823
diff
changeset
|
1 from __future__ import print_function |
|
2823
d41f38de578e
remove unused imports: shutil, Indexer;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2813
diff
changeset
|
2 import sys, os, time |
|
7872
163d2c60fdf3
test: benchmark no progress when INCI defined; set path; signal handling
John Rouillard <rouilj@ieee.org>
parents:
7871
diff
changeset
|
3 import importlib, signal, shutil |
|
163d2c60fdf3
test: benchmark no progress when INCI defined; set path; signal handling
John Rouillard <rouilj@ieee.org>
parents:
7871
diff
changeset
|
4 |
|
163d2c60fdf3
test: benchmark no progress when INCI defined; set path; signal handling
John Rouillard <rouilj@ieee.org>
parents:
7871
diff
changeset
|
5 # --- patch sys.path to make sure 'import roundup' finds correct version |
|
163d2c60fdf3
test: benchmark no progress when INCI defined; set path; signal handling
John Rouillard <rouilj@ieee.org>
parents:
7871
diff
changeset
|
6 import os.path as osp |
|
163d2c60fdf3
test: benchmark no progress when INCI defined; set path; signal handling
John Rouillard <rouilj@ieee.org>
parents:
7871
diff
changeset
|
7 thisdir = osp.dirname(osp.abspath(__file__)) |
|
163d2c60fdf3
test: benchmark no progress when INCI defined; set path; signal handling
John Rouillard <rouilj@ieee.org>
parents:
7871
diff
changeset
|
8 rootdir = osp.dirname(thisdir) |
|
163d2c60fdf3
test: benchmark no progress when INCI defined; set path; signal handling
John Rouillard <rouilj@ieee.org>
parents:
7871
diff
changeset
|
9 if (osp.exists(thisdir + '/benchmark.py') and |
|
163d2c60fdf3
test: benchmark no progress when INCI defined; set path; signal handling
John Rouillard <rouilj@ieee.org>
parents:
7871
diff
changeset
|
10 osp.exists(rootdir + '/roundup/__init__.py')): |
|
163d2c60fdf3
test: benchmark no progress when INCI defined; set path; signal handling
John Rouillard <rouilj@ieee.org>
parents:
7871
diff
changeset
|
11 # the script is located inside roundup source code |
|
163d2c60fdf3
test: benchmark no progress when INCI defined; set path; signal handling
John Rouillard <rouilj@ieee.org>
parents:
7871
diff
changeset
|
12 sys.path.insert(0, rootdir) |
|
1174
8e318dfaf479
Verify contents of tracker module when the tracker is opened
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
13 |
|
8e318dfaf479
Verify contents of tracker module when the tracker is opened
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
14 from roundup.hyperdb import String, Password, Link, Multilink, Date, \ |
|
8e318dfaf479
Verify contents of tracker module when the tracker is opened
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
15 Interval, DatabaseError, Boolean, Number |
|
8e318dfaf479
Verify contents of tracker module when the tracker is opened
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
16 from roundup import date, password |
|
2823
d41f38de578e
remove unused imports: shutil, Indexer;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2813
diff
changeset
|
17 |
|
7871
30fcdf60da44
test: fix benchmark.py and set up to run under github if requested
John Rouillard <rouilj@ieee.org>
parents:
5400
diff
changeset
|
18 from test.db_test_base import config |
|
1174
8e318dfaf479
Verify contents of tracker module when the tracker is opened
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
19 |
|
7872
163d2c60fdf3
test: benchmark no progress when INCI defined; set path; signal handling
John Rouillard <rouilj@ieee.org>
parents:
7871
diff
changeset
|
20 int_sig_default_handler = None |
|
163d2c60fdf3
test: benchmark no progress when INCI defined; set path; signal handling
John Rouillard <rouilj@ieee.org>
parents:
7871
diff
changeset
|
21 |
|
1174
8e318dfaf479
Verify contents of tracker module when the tracker is opened
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
22 def setupSchema(db, module): |
|
8e318dfaf479
Verify contents of tracker module when the tracker is opened
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
23 status = module.Class(db, "status", name=String()) |
|
8e318dfaf479
Verify contents of tracker module when the tracker is opened
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
24 status.setkey("name") |
|
8e318dfaf479
Verify contents of tracker module when the tracker is opened
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
25 user = module.Class(db, "user", username=String(), password=Password(), |
|
8e318dfaf479
Verify contents of tracker module when the tracker is opened
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
26 assignable=Boolean(), age=Number(), roles=String()) |
|
8e318dfaf479
Verify contents of tracker module when the tracker is opened
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
27 user.setkey("username") |
|
8e318dfaf479
Verify contents of tracker module when the tracker is opened
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
28 file = module.FileClass(db, "file", name=String(), type=String(), |
|
8e318dfaf479
Verify contents of tracker module when the tracker is opened
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
29 comment=String(indexme="yes")) |
|
8e318dfaf479
Verify contents of tracker module when the tracker is opened
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
30 issue = module.IssueClass(db, "issue", title=String(indexme="yes"), |
|
8e318dfaf479
Verify contents of tracker module when the tracker is opened
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
31 status=Link("status"), nosy=Multilink("user"), deadline=Date(), |
|
8e318dfaf479
Verify contents of tracker module when the tracker is opened
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
32 foo=Interval(), files=Multilink("file"), assignedto=Link('user')) |
|
8e318dfaf479
Verify contents of tracker module when the tracker is opened
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
33 session = module.Class(db, 'session', title=String()) |
|
8e318dfaf479
Verify contents of tracker module when the tracker is opened
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
34 session.disableJournalling() |
|
8e318dfaf479
Verify contents of tracker module when the tracker is opened
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
35 db.post_init() |
|
8e318dfaf479
Verify contents of tracker module when the tracker is opened
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
36 db.commit() |
|
8e318dfaf479
Verify contents of tracker module when the tracker is opened
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
37 |
|
7872
163d2c60fdf3
test: benchmark no progress when INCI defined; set path; signal handling
John Rouillard <rouilj@ieee.org>
parents:
7871
diff
changeset
|
38 def rm_db_on_signal(sig, frame): |
|
163d2c60fdf3
test: benchmark no progress when INCI defined; set path; signal handling
John Rouillard <rouilj@ieee.org>
parents:
7871
diff
changeset
|
39 print("removing incomplete database %s due to interruption." % |
|
163d2c60fdf3
test: benchmark no progress when INCI defined; set path; signal handling
John Rouillard <rouilj@ieee.org>
parents:
7871
diff
changeset
|
40 config.DATABASE) |
|
163d2c60fdf3
test: benchmark no progress when INCI defined; set path; signal handling
John Rouillard <rouilj@ieee.org>
parents:
7871
diff
changeset
|
41 shutil.rmtree(config.DATABASE) |
|
163d2c60fdf3
test: benchmark no progress when INCI defined; set path; signal handling
John Rouillard <rouilj@ieee.org>
parents:
7871
diff
changeset
|
42 signal.signal(signal.SIGINT, int_sig_default_handler) |
|
163d2c60fdf3
test: benchmark no progress when INCI defined; set path; signal handling
John Rouillard <rouilj@ieee.org>
parents:
7871
diff
changeset
|
43 signal.raise_signal(signal.SIGTERM) |
|
163d2c60fdf3
test: benchmark no progress when INCI defined; set path; signal handling
John Rouillard <rouilj@ieee.org>
parents:
7871
diff
changeset
|
44 |
|
1174
8e318dfaf479
Verify contents of tracker module when the tracker is opened
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
45 def main(backendname, time=time.time, numissues=10): |
|
7872
163d2c60fdf3
test: benchmark no progress when INCI defined; set path; signal handling
John Rouillard <rouilj@ieee.org>
parents:
7871
diff
changeset
|
46 global int_sig_default_handler |
|
1174
8e318dfaf479
Verify contents of tracker module when the tracker is opened
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
47 try: |
|
7871
30fcdf60da44
test: fix benchmark.py and set up to run under github if requested
John Rouillard <rouilj@ieee.org>
parents:
5400
diff
changeset
|
48 backend = importlib.import_module("roundup.backends.back_%s" % |
|
30fcdf60da44
test: fix benchmark.py and set up to run under github if requested
John Rouillard <rouilj@ieee.org>
parents:
5400
diff
changeset
|
49 backendname) |
|
1174
8e318dfaf479
Verify contents of tracker module when the tracker is opened
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
50 except ImportError: |
|
8e318dfaf479
Verify contents of tracker module when the tracker is opened
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
51 return |
|
8e318dfaf479
Verify contents of tracker module when the tracker is opened
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
52 |
|
8e318dfaf479
Verify contents of tracker module when the tracker is opened
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
53 times = [] |
|
8e318dfaf479
Verify contents of tracker module when the tracker is opened
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
54 |
|
1181
49aebf5a8691
some speedups, some fixes to the benchmarking
Richard Jones <richard@users.sourceforge.net>
parents:
1174
diff
changeset
|
55 config.DATABASE = os.path.join('_benchmark', '%s-%s'%(backendname, |
|
49aebf5a8691
some speedups, some fixes to the benchmarking
Richard Jones <richard@users.sourceforge.net>
parents:
1174
diff
changeset
|
56 numissues)) |
|
49aebf5a8691
some speedups, some fixes to the benchmarking
Richard Jones <richard@users.sourceforge.net>
parents:
1174
diff
changeset
|
57 if not os.path.exists(config.DATABASE): |
|
7872
163d2c60fdf3
test: benchmark no progress when INCI defined; set path; signal handling
John Rouillard <rouilj@ieee.org>
parents:
7871
diff
changeset
|
58 int_sig_default_handler = signal.signal(signal.SIGINT, rm_db_on_signal) |
|
1181
49aebf5a8691
some speedups, some fixes to the benchmarking
Richard Jones <richard@users.sourceforge.net>
parents:
1174
diff
changeset
|
59 db = backend.Database(config, 'admin') |
|
49aebf5a8691
some speedups, some fixes to the benchmarking
Richard Jones <richard@users.sourceforge.net>
parents:
1174
diff
changeset
|
60 setupSchema(db, backend) |
|
49aebf5a8691
some speedups, some fixes to the benchmarking
Richard Jones <richard@users.sourceforge.net>
parents:
1174
diff
changeset
|
61 # create a whole bunch of stuff |
|
7871
30fcdf60da44
test: fix benchmark.py and set up to run under github if requested
John Rouillard <rouilj@ieee.org>
parents:
5400
diff
changeset
|
62 db.user.create(**{'username': 'admin', 'roles': 'Admin'}) |
|
1181
49aebf5a8691
some speedups, some fixes to the benchmarking
Richard Jones <richard@users.sourceforge.net>
parents:
1174
diff
changeset
|
63 db.status.create(name="unread") |
|
49aebf5a8691
some speedups, some fixes to the benchmarking
Richard Jones <richard@users.sourceforge.net>
parents:
1174
diff
changeset
|
64 db.status.create(name="in-progress") |
|
49aebf5a8691
some speedups, some fixes to the benchmarking
Richard Jones <richard@users.sourceforge.net>
parents:
1174
diff
changeset
|
65 db.status.create(name="testing") |
|
49aebf5a8691
some speedups, some fixes to the benchmarking
Richard Jones <richard@users.sourceforge.net>
parents:
1174
diff
changeset
|
66 db.status.create(name="resolved") |
|
49aebf5a8691
some speedups, some fixes to the benchmarking
Richard Jones <richard@users.sourceforge.net>
parents:
1174
diff
changeset
|
67 pc = -1 |
|
49aebf5a8691
some speedups, some fixes to the benchmarking
Richard Jones <richard@users.sourceforge.net>
parents:
1174
diff
changeset
|
68 for i in range(numissues): |
|
7871
30fcdf60da44
test: fix benchmark.py and set up to run under github if requested
John Rouillard <rouilj@ieee.org>
parents:
5400
diff
changeset
|
69 db.user.create(**{'username': 'user %s'%i, 'roles': 'User'}) |
|
1181
49aebf5a8691
some speedups, some fixes to the benchmarking
Richard Jones <richard@users.sourceforge.net>
parents:
1174
diff
changeset
|
70 for j in range(10): |
|
49aebf5a8691
some speedups, some fixes to the benchmarking
Richard Jones <richard@users.sourceforge.net>
parents:
1174
diff
changeset
|
71 db.user.set(str(i+1), assignable=1) |
|
49aebf5a8691
some speedups, some fixes to the benchmarking
Richard Jones <richard@users.sourceforge.net>
parents:
1174
diff
changeset
|
72 db.user.set(str(i+1), assignable=0) |
|
49aebf5a8691
some speedups, some fixes to the benchmarking
Richard Jones <richard@users.sourceforge.net>
parents:
1174
diff
changeset
|
73 db.issue.create(**{'title': 'issue %s'%i}) |
|
49aebf5a8691
some speedups, some fixes to the benchmarking
Richard Jones <richard@users.sourceforge.net>
parents:
1174
diff
changeset
|
74 for j in range(10): |
|
49aebf5a8691
some speedups, some fixes to the benchmarking
Richard Jones <richard@users.sourceforge.net>
parents:
1174
diff
changeset
|
75 db.issue.set(str(i+1), status='2', assignedto='2', nosy=[]) |
|
49aebf5a8691
some speedups, some fixes to the benchmarking
Richard Jones <richard@users.sourceforge.net>
parents:
1174
diff
changeset
|
76 db.issue.set(str(i+1), status='1', assignedto='1', |
|
49aebf5a8691
some speedups, some fixes to the benchmarking
Richard Jones <richard@users.sourceforge.net>
parents:
1174
diff
changeset
|
77 nosy=['1','2']) |
|
7872
163d2c60fdf3
test: benchmark no progress when INCI defined; set path; signal handling
John Rouillard <rouilj@ieee.org>
parents:
7871
diff
changeset
|
78 if (i*100//numissues) != pc and 'INCI' not in os.environ: |
|
5400
2120f77554d5
Python 3 preparation: use // and __truediv__ as needed.
Joseph Myers <jsm@polyomino.org.uk>
parents:
5388
diff
changeset
|
79 pc = (i*100//numissues) |
|
1181
49aebf5a8691
some speedups, some fixes to the benchmarking
Richard Jones <richard@users.sourceforge.net>
parents:
1174
diff
changeset
|
80 sys.stdout.write("%d%%\r"%pc) |
|
49aebf5a8691
some speedups, some fixes to the benchmarking
Richard Jones <richard@users.sourceforge.net>
parents:
1174
diff
changeset
|
81 sys.stdout.flush() |
|
49aebf5a8691
some speedups, some fixes to the benchmarking
Richard Jones <richard@users.sourceforge.net>
parents:
1174
diff
changeset
|
82 db.commit() |
|
7872
163d2c60fdf3
test: benchmark no progress when INCI defined; set path; signal handling
John Rouillard <rouilj@ieee.org>
parents:
7871
diff
changeset
|
83 signal.signal(signal.SIGINT, int_sig_default_handler) |
|
1181
49aebf5a8691
some speedups, some fixes to the benchmarking
Richard Jones <richard@users.sourceforge.net>
parents:
1174
diff
changeset
|
84 else: |
|
49aebf5a8691
some speedups, some fixes to the benchmarking
Richard Jones <richard@users.sourceforge.net>
parents:
1174
diff
changeset
|
85 db = backend.Database(config, 'admin') |
|
49aebf5a8691
some speedups, some fixes to the benchmarking
Richard Jones <richard@users.sourceforge.net>
parents:
1174
diff
changeset
|
86 setupSchema(db, backend) |
|
49aebf5a8691
some speedups, some fixes to the benchmarking
Richard Jones <richard@users.sourceforge.net>
parents:
1174
diff
changeset
|
87 |
|
1174
8e318dfaf479
Verify contents of tracker module when the tracker is opened
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
88 sys.stdout.write('%7s: %-6d'%(backendname, numissues)) |
|
8e318dfaf479
Verify contents of tracker module when the tracker is opened
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
89 sys.stdout.flush() |
|
8e318dfaf479
Verify contents of tracker module when the tracker is opened
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
90 |
|
8e318dfaf479
Verify contents of tracker module when the tracker is opened
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
91 times.append(('start', time())) |
|
8e318dfaf479
Verify contents of tracker module when the tracker is opened
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
92 |
|
8e318dfaf479
Verify contents of tracker module when the tracker is opened
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
93 # fetch |
|
1181
49aebf5a8691
some speedups, some fixes to the benchmarking
Richard Jones <richard@users.sourceforge.net>
parents:
1174
diff
changeset
|
94 db.clearCache() |
|
1174
8e318dfaf479
Verify contents of tracker module when the tracker is opened
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
95 for i in db.issue.list(): |
|
8e318dfaf479
Verify contents of tracker module when the tracker is opened
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
96 db.issue.get(i, 'title') |
|
8e318dfaf479
Verify contents of tracker module when the tracker is opened
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
97 times.append(('fetch', time())) |
|
8e318dfaf479
Verify contents of tracker module when the tracker is opened
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
98 |
|
8e318dfaf479
Verify contents of tracker module when the tracker is opened
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
99 # journals |
|
1181
49aebf5a8691
some speedups, some fixes to the benchmarking
Richard Jones <richard@users.sourceforge.net>
parents:
1174
diff
changeset
|
100 db.clearCache() |
|
1174
8e318dfaf479
Verify contents of tracker module when the tracker is opened
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
101 for i in db.issue.list(): |
|
8e318dfaf479
Verify contents of tracker module when the tracker is opened
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
102 db.issue.history(i) |
|
8e318dfaf479
Verify contents of tracker module when the tracker is opened
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
103 times.append(('journal', time())) |
|
8e318dfaf479
Verify contents of tracker module when the tracker is opened
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
104 |
|
8e318dfaf479
Verify contents of tracker module when the tracker is opened
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
105 # "calculated" props |
|
1181
49aebf5a8691
some speedups, some fixes to the benchmarking
Richard Jones <richard@users.sourceforge.net>
parents:
1174
diff
changeset
|
106 db.clearCache() |
|
1174
8e318dfaf479
Verify contents of tracker module when the tracker is opened
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
107 for i in db.issue.list(): |
|
8e318dfaf479
Verify contents of tracker module when the tracker is opened
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
108 db.issue.get(i, 'activity') |
|
8e318dfaf479
Verify contents of tracker module when the tracker is opened
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
109 db.issue.get(i, 'creator') |
|
8e318dfaf479
Verify contents of tracker module when the tracker is opened
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
110 db.issue.get(i, 'creation') |
|
8e318dfaf479
Verify contents of tracker module when the tracker is opened
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
111 times.append(('jprops', time())) |
|
8e318dfaf479
Verify contents of tracker module when the tracker is opened
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
112 |
|
8e318dfaf479
Verify contents of tracker module when the tracker is opened
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
113 # lookup |
|
1181
49aebf5a8691
some speedups, some fixes to the benchmarking
Richard Jones <richard@users.sourceforge.net>
parents:
1174
diff
changeset
|
114 db.clearCache() |
|
1174
8e318dfaf479
Verify contents of tracker module when the tracker is opened
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
115 for i in range(numissues): |
|
8e318dfaf479
Verify contents of tracker module when the tracker is opened
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
116 db.user.lookup('user %s'%i) |
|
8e318dfaf479
Verify contents of tracker module when the tracker is opened
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
117 times.append(('lookup', time())) |
|
8e318dfaf479
Verify contents of tracker module when the tracker is opened
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
118 |
|
8e318dfaf479
Verify contents of tracker module when the tracker is opened
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
119 # filter |
|
1181
49aebf5a8691
some speedups, some fixes to the benchmarking
Richard Jones <richard@users.sourceforge.net>
parents:
1174
diff
changeset
|
120 db.clearCache() |
|
49aebf5a8691
some speedups, some fixes to the benchmarking
Richard Jones <richard@users.sourceforge.net>
parents:
1174
diff
changeset
|
121 for i in range(100): |
|
49aebf5a8691
some speedups, some fixes to the benchmarking
Richard Jones <richard@users.sourceforge.net>
parents:
1174
diff
changeset
|
122 db.issue.filter(None, {'assignedto': '1', 'title':'issue'}, |
|
49aebf5a8691
some speedups, some fixes to the benchmarking
Richard Jones <richard@users.sourceforge.net>
parents:
1174
diff
changeset
|
123 ('+', 'activity'), ('+', 'status')) |
|
49aebf5a8691
some speedups, some fixes to the benchmarking
Richard Jones <richard@users.sourceforge.net>
parents:
1174
diff
changeset
|
124 times.append(('filter', time())) |
|
49aebf5a8691
some speedups, some fixes to the benchmarking
Richard Jones <richard@users.sourceforge.net>
parents:
1174
diff
changeset
|
125 |
|
49aebf5a8691
some speedups, some fixes to the benchmarking
Richard Jones <richard@users.sourceforge.net>
parents:
1174
diff
changeset
|
126 # filter with multilink |
|
49aebf5a8691
some speedups, some fixes to the benchmarking
Richard Jones <richard@users.sourceforge.net>
parents:
1174
diff
changeset
|
127 db.clearCache() |
|
1174
8e318dfaf479
Verify contents of tracker module when the tracker is opened
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
128 for i in range(100): |
|
8e318dfaf479
Verify contents of tracker module when the tracker is opened
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
129 db.issue.filter(None, {'nosy': ['1'], 'assignedto': '1', |
|
8e318dfaf479
Verify contents of tracker module when the tracker is opened
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
130 'title':'issue'}, ('+', 'activity'), ('+', 'status')) |
|
1181
49aebf5a8691
some speedups, some fixes to the benchmarking
Richard Jones <richard@users.sourceforge.net>
parents:
1174
diff
changeset
|
131 times.append(('filtml', time())) |
|
1174
8e318dfaf479
Verify contents of tracker module when the tracker is opened
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
132 |
|
8e318dfaf479
Verify contents of tracker module when the tracker is opened
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
133 # results |
|
8e318dfaf479
Verify contents of tracker module when the tracker is opened
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
134 last = None |
|
8e318dfaf479
Verify contents of tracker module when the tracker is opened
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
135 for event, stamp in times: |
|
8e318dfaf479
Verify contents of tracker module when the tracker is opened
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
136 if last is None: |
|
8e318dfaf479
Verify contents of tracker module when the tracker is opened
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
137 first = stamp |
|
8e318dfaf479
Verify contents of tracker module when the tracker is opened
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
138 else: |
|
8e318dfaf479
Verify contents of tracker module when the tracker is opened
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
139 sys.stdout.write(' %-6.2f'%(stamp-last)) |
|
8e318dfaf479
Verify contents of tracker module when the tracker is opened
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
140 last = stamp |
|
5376
64b05e24dbd8
Python 3 preparation: convert print to a function.
Joseph Myers <jsm@polyomino.org.uk>
parents:
2823
diff
changeset
|
141 print(' %-6.2f'%(last-first)) |
|
1174
8e318dfaf479
Verify contents of tracker module when the tracker is opened
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
142 sys.stdout.flush() |
|
8e318dfaf479
Verify contents of tracker module when the tracker is opened
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
143 |
|
8e318dfaf479
Verify contents of tracker module when the tracker is opened
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
144 if __name__ == '__main__': |
|
8e318dfaf479
Verify contents of tracker module when the tracker is opened
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
145 # 0 1 2 3 4 5 6 |
|
8e318dfaf479
Verify contents of tracker module when the tracker is opened
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
146 # 01234567890123456789012345678901234567890123456789012345678901234 |
|
5376
64b05e24dbd8
Python 3 preparation: convert print to a function.
Joseph Myers <jsm@polyomino.org.uk>
parents:
2823
diff
changeset
|
147 print('Test name fetch journl jprops lookup filter filtml TOTAL ') |
|
7871
30fcdf60da44
test: fix benchmark.py and set up to run under github if requested
John Rouillard <rouilj@ieee.org>
parents:
5400
diff
changeset
|
148 for name in 'anydbm sqlite'.split(): |
|
1174
8e318dfaf479
Verify contents of tracker module when the tracker is opened
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
149 main(name) |
|
7871
30fcdf60da44
test: fix benchmark.py and set up to run under github if requested
John Rouillard <rouilj@ieee.org>
parents:
5400
diff
changeset
|
150 for name in 'anydbm sqlite'.split(): |
|
1174
8e318dfaf479
Verify contents of tracker module when the tracker is opened
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
151 main(name, numissues=20) |
|
7871
30fcdf60da44
test: fix benchmark.py and set up to run under github if requested
John Rouillard <rouilj@ieee.org>
parents:
5400
diff
changeset
|
152 for name in 'anydbm sqlite'.split(): |
|
1181
49aebf5a8691
some speedups, some fixes to the benchmarking
Richard Jones <richard@users.sourceforge.net>
parents:
1174
diff
changeset
|
153 main(name, numissues=100) |
|
1233
69bf0d381fd7
Zope Collector fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
1181
diff
changeset
|
154 # don't even bother benchmarking the dbm backends > 100! |
|
7871
30fcdf60da44
test: fix benchmark.py and set up to run under github if requested
John Rouillard <rouilj@ieee.org>
parents:
5400
diff
changeset
|
155 for name in 'sqlite'.split(): |
|
1233
69bf0d381fd7
Zope Collector fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
1181
diff
changeset
|
156 main(name, numissues=1000) |
|
1174
8e318dfaf479
Verify contents of tracker module when the tracker is opened
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
157 |
|
2813
91d4d28c4a86
remove bsddb, bsddb3 backends;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
1233
diff
changeset
|
158 # vim: set et sts=4 sw=4 : |
