Mercurial > p > roundup > code
annotate test/benchmark.py @ 7872:163d2c60fdf3
test: benchmark no progress when INCI defined; set path; signal handling
The progress reports on issue creation in the db breaks up the table
in CI as each is reported on a new line. If the environment variable
INCI is set to any value, don't generate progress output. Change
GitHub action to define INCI
Insert roundup root directory in sys.path so import from test directory
will be found.
Also set up signal handler to delete the database if ^C is pressed
during creation. The interrupted db is incomplete (required data
missing), but it is used as is for a subsequent run. This causes the
benchmark to crash.
| author | John Rouillard <rouilj@ieee.org> |
|---|---|
| date | Wed, 10 Apr 2024 12:54:18 -0400 |
| parents | 30fcdf60da44 |
| children | 867418c24339 |
| 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 import pdb; pdb.set_trace() |
|
163d2c60fdf3
test: benchmark no progress when INCI defined; set path; signal handling
John Rouillard <rouilj@ieee.org>
parents:
7871
diff
changeset
|
8 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
|
9 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
|
10 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
|
11 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
|
12 # 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
|
13 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
|
14 |
|
8e318dfaf479
Verify contents of tracker module when the tracker is opened
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
15 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
|
16 Interval, DatabaseError, Boolean, Number |
|
8e318dfaf479
Verify contents of tracker module when the tracker is opened
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
17 from roundup import date, password |
|
2823
d41f38de578e
remove unused imports: shutil, Indexer;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2813
diff
changeset
|
18 |
|
7871
30fcdf60da44
test: fix benchmark.py and set up to run under github if requested
John Rouillard <rouilj@ieee.org>
parents:
5400
diff
changeset
|
19 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
|
20 |
|
7872
163d2c60fdf3
test: benchmark no progress when INCI defined; set path; signal handling
John Rouillard <rouilj@ieee.org>
parents:
7871
diff
changeset
|
21 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
|
22 |
|
1174
8e318dfaf479
Verify contents of tracker module when the tracker is opened
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
23 def setupSchema(db, module): |
|
8e318dfaf479
Verify contents of tracker module when the tracker is opened
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
24 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
|
25 status.setkey("name") |
|
8e318dfaf479
Verify contents of tracker module when the tracker is opened
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
26 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
|
27 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
|
28 user.setkey("username") |
|
8e318dfaf479
Verify contents of tracker module when the tracker is opened
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
29 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
|
30 comment=String(indexme="yes")) |
|
8e318dfaf479
Verify contents of tracker module when the tracker is opened
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
31 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
|
32 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
|
33 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
|
34 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
|
35 session.disableJournalling() |
|
8e318dfaf479
Verify contents of tracker module when the tracker is opened
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
36 db.post_init() |
|
8e318dfaf479
Verify contents of tracker module when the tracker is opened
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
37 db.commit() |
|
8e318dfaf479
Verify contents of tracker module when the tracker is opened
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
38 |
|
7872
163d2c60fdf3
test: benchmark no progress when INCI defined; set path; signal handling
John Rouillard <rouilj@ieee.org>
parents:
7871
diff
changeset
|
39 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
|
40 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
|
41 config.DATABASE) |
|
163d2c60fdf3
test: benchmark no progress when INCI defined; set path; signal handling
John Rouillard <rouilj@ieee.org>
parents:
7871
diff
changeset
|
42 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
|
43 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
|
44 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
|
45 |
|
1174
8e318dfaf479
Verify contents of tracker module when the tracker is opened
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
46 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
|
47 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
|
48 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
|
49 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
|
50 backendname) |
|
1174
8e318dfaf479
Verify contents of tracker module when the tracker is opened
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
51 except ImportError: |
|
8e318dfaf479
Verify contents of tracker module when the tracker is opened
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
52 return |
|
8e318dfaf479
Verify contents of tracker module when the tracker is opened
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
53 |
|
8e318dfaf479
Verify contents of tracker module when the tracker is opened
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
54 times = [] |
|
8e318dfaf479
Verify contents of tracker module when the tracker is opened
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
55 |
|
1181
49aebf5a8691
some speedups, some fixes to the benchmarking
Richard Jones <richard@users.sourceforge.net>
parents:
1174
diff
changeset
|
56 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
|
57 numissues)) |
|
49aebf5a8691
some speedups, some fixes to the benchmarking
Richard Jones <richard@users.sourceforge.net>
parents:
1174
diff
changeset
|
58 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
|
59 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
|
60 db = backend.Database(config, 'admin') |
|
49aebf5a8691
some speedups, some fixes to the benchmarking
Richard Jones <richard@users.sourceforge.net>
parents:
1174
diff
changeset
|
61 setupSchema(db, backend) |
|
49aebf5a8691
some speedups, some fixes to the benchmarking
Richard Jones <richard@users.sourceforge.net>
parents:
1174
diff
changeset
|
62 # 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
|
63 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
|
64 db.status.create(name="unread") |
|
49aebf5a8691
some speedups, some fixes to the benchmarking
Richard Jones <richard@users.sourceforge.net>
parents:
1174
diff
changeset
|
65 db.status.create(name="in-progress") |
|
49aebf5a8691
some speedups, some fixes to the benchmarking
Richard Jones <richard@users.sourceforge.net>
parents:
1174
diff
changeset
|
66 db.status.create(name="testing") |
|
49aebf5a8691
some speedups, some fixes to the benchmarking
Richard Jones <richard@users.sourceforge.net>
parents:
1174
diff
changeset
|
67 db.status.create(name="resolved") |
|
49aebf5a8691
some speedups, some fixes to the benchmarking
Richard Jones <richard@users.sourceforge.net>
parents:
1174
diff
changeset
|
68 pc = -1 |
|
49aebf5a8691
some speedups, some fixes to the benchmarking
Richard Jones <richard@users.sourceforge.net>
parents:
1174
diff
changeset
|
69 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
|
70 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
|
71 for j in range(10): |
|
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=1) |
|
49aebf5a8691
some speedups, some fixes to the benchmarking
Richard Jones <richard@users.sourceforge.net>
parents:
1174
diff
changeset
|
73 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
|
74 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
|
75 for j in range(10): |
|
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='2', assignedto='2', nosy=[]) |
|
49aebf5a8691
some speedups, some fixes to the benchmarking
Richard Jones <richard@users.sourceforge.net>
parents:
1174
diff
changeset
|
77 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
|
78 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
|
79 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
|
80 pc = (i*100//numissues) |
|
1181
49aebf5a8691
some speedups, some fixes to the benchmarking
Richard Jones <richard@users.sourceforge.net>
parents:
1174
diff
changeset
|
81 sys.stdout.write("%d%%\r"%pc) |
|
49aebf5a8691
some speedups, some fixes to the benchmarking
Richard Jones <richard@users.sourceforge.net>
parents:
1174
diff
changeset
|
82 sys.stdout.flush() |
|
49aebf5a8691
some speedups, some fixes to the benchmarking
Richard Jones <richard@users.sourceforge.net>
parents:
1174
diff
changeset
|
83 db.commit() |
|
7872
163d2c60fdf3
test: benchmark no progress when INCI defined; set path; signal handling
John Rouillard <rouilj@ieee.org>
parents:
7871
diff
changeset
|
84 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
|
85 else: |
|
49aebf5a8691
some speedups, some fixes to the benchmarking
Richard Jones <richard@users.sourceforge.net>
parents:
1174
diff
changeset
|
86 db = backend.Database(config, 'admin') |
|
49aebf5a8691
some speedups, some fixes to the benchmarking
Richard Jones <richard@users.sourceforge.net>
parents:
1174
diff
changeset
|
87 setupSchema(db, backend) |
|
49aebf5a8691
some speedups, some fixes to the benchmarking
Richard Jones <richard@users.sourceforge.net>
parents:
1174
diff
changeset
|
88 |
|
1174
8e318dfaf479
Verify contents of tracker module when the tracker is opened
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
89 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
|
90 sys.stdout.flush() |
|
8e318dfaf479
Verify contents of tracker module when the tracker is opened
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
91 |
|
8e318dfaf479
Verify contents of tracker module when the tracker is opened
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
92 times.append(('start', time())) |
|
8e318dfaf479
Verify contents of tracker module when the tracker is opened
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
93 |
|
8e318dfaf479
Verify contents of tracker module when the tracker is opened
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
94 # fetch |
|
1181
49aebf5a8691
some speedups, some fixes to the benchmarking
Richard Jones <richard@users.sourceforge.net>
parents:
1174
diff
changeset
|
95 db.clearCache() |
|
1174
8e318dfaf479
Verify contents of tracker module when the tracker is opened
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
96 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
|
97 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
|
98 times.append(('fetch', time())) |
|
8e318dfaf479
Verify contents of tracker module when the tracker is opened
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
99 |
|
8e318dfaf479
Verify contents of tracker module when the tracker is opened
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
100 # journals |
|
1181
49aebf5a8691
some speedups, some fixes to the benchmarking
Richard Jones <richard@users.sourceforge.net>
parents:
1174
diff
changeset
|
101 db.clearCache() |
|
1174
8e318dfaf479
Verify contents of tracker module when the tracker is opened
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
102 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
|
103 db.issue.history(i) |
|
8e318dfaf479
Verify contents of tracker module when the tracker is opened
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
104 times.append(('journal', time())) |
|
8e318dfaf479
Verify contents of tracker module when the tracker is opened
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
105 |
|
8e318dfaf479
Verify contents of tracker module when the tracker is opened
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
106 # "calculated" props |
|
1181
49aebf5a8691
some speedups, some fixes to the benchmarking
Richard Jones <richard@users.sourceforge.net>
parents:
1174
diff
changeset
|
107 db.clearCache() |
|
1174
8e318dfaf479
Verify contents of tracker module when the tracker is opened
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
108 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
|
109 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
|
110 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
|
111 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
|
112 times.append(('jprops', time())) |
|
8e318dfaf479
Verify contents of tracker module when the tracker is opened
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
113 |
|
8e318dfaf479
Verify contents of tracker module when the tracker is opened
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
114 # lookup |
|
1181
49aebf5a8691
some speedups, some fixes to the benchmarking
Richard Jones <richard@users.sourceforge.net>
parents:
1174
diff
changeset
|
115 db.clearCache() |
|
1174
8e318dfaf479
Verify contents of tracker module when the tracker is opened
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
116 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
|
117 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
|
118 times.append(('lookup', time())) |
|
8e318dfaf479
Verify contents of tracker module when the tracker is opened
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
119 |
|
8e318dfaf479
Verify contents of tracker module when the tracker is opened
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
120 # filter |
|
1181
49aebf5a8691
some speedups, some fixes to the benchmarking
Richard Jones <richard@users.sourceforge.net>
parents:
1174
diff
changeset
|
121 db.clearCache() |
|
49aebf5a8691
some speedups, some fixes to the benchmarking
Richard Jones <richard@users.sourceforge.net>
parents:
1174
diff
changeset
|
122 for i in range(100): |
|
49aebf5a8691
some speedups, some fixes to the benchmarking
Richard Jones <richard@users.sourceforge.net>
parents:
1174
diff
changeset
|
123 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
|
124 ('+', 'activity'), ('+', 'status')) |
|
49aebf5a8691
some speedups, some fixes to the benchmarking
Richard Jones <richard@users.sourceforge.net>
parents:
1174
diff
changeset
|
125 times.append(('filter', time())) |
|
49aebf5a8691
some speedups, some fixes to the benchmarking
Richard Jones <richard@users.sourceforge.net>
parents:
1174
diff
changeset
|
126 |
|
49aebf5a8691
some speedups, some fixes to the benchmarking
Richard Jones <richard@users.sourceforge.net>
parents:
1174
diff
changeset
|
127 # filter with multilink |
|
49aebf5a8691
some speedups, some fixes to the benchmarking
Richard Jones <richard@users.sourceforge.net>
parents:
1174
diff
changeset
|
128 db.clearCache() |
|
1174
8e318dfaf479
Verify contents of tracker module when the tracker is opened
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
129 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
|
130 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
|
131 'title':'issue'}, ('+', 'activity'), ('+', 'status')) |
|
1181
49aebf5a8691
some speedups, some fixes to the benchmarking
Richard Jones <richard@users.sourceforge.net>
parents:
1174
diff
changeset
|
132 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
|
133 |
|
8e318dfaf479
Verify contents of tracker module when the tracker is opened
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
134 # results |
|
8e318dfaf479
Verify contents of tracker module when the tracker is opened
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
135 last = None |
|
8e318dfaf479
Verify contents of tracker module when the tracker is opened
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
136 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
|
137 if last is None: |
|
8e318dfaf479
Verify contents of tracker module when the tracker is opened
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
138 first = stamp |
|
8e318dfaf479
Verify contents of tracker module when the tracker is opened
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
139 else: |
|
8e318dfaf479
Verify contents of tracker module when the tracker is opened
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
140 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
|
141 last = stamp |
|
5376
64b05e24dbd8
Python 3 preparation: convert print to a function.
Joseph Myers <jsm@polyomino.org.uk>
parents:
2823
diff
changeset
|
142 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
|
143 sys.stdout.flush() |
|
8e318dfaf479
Verify contents of tracker module when the tracker is opened
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
144 |
|
8e318dfaf479
Verify contents of tracker module when the tracker is opened
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
145 if __name__ == '__main__': |
|
8e318dfaf479
Verify contents of tracker module when the tracker is opened
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
146 # 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
|
147 # 01234567890123456789012345678901234567890123456789012345678901234 |
|
5376
64b05e24dbd8
Python 3 preparation: convert print to a function.
Joseph Myers <jsm@polyomino.org.uk>
parents:
2823
diff
changeset
|
148 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
|
149 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
|
150 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
|
151 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
|
152 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
|
153 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
|
154 main(name, numissues=100) |
|
1233
69bf0d381fd7
Zope Collector fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
1181
diff
changeset
|
155 # 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
|
156 for name in 'sqlite'.split(): |
|
1233
69bf0d381fd7
Zope Collector fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
1181
diff
changeset
|
157 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
|
158 |
|
2813
91d4d28c4a86
remove bsddb, bsddb3 backends;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
1233
diff
changeset
|
159 # vim: set et sts=4 sw=4 : |
