on master help sign in
Add a Python fileread benchmark
31ac4c0Bryan O'Sullivan
tests/benchmarks/fileread.pynew file+41
@@ -0,0 +1,41 @@
1+#!/usr/bin/env python
2+
3+import sys
4+
5+def string(name):
6+ print len(open(name).read())
7+
8+def lazystring(name):
9+ fp = open(name)
10+ n = 0
11+ d = True
12+ bs = 128 * 1024
13+ read = fp.read
14+ while d:
15+ d = len(read(bs))
16+ n += d
17+ print n
18+
19+def lazytext(name):
20+ fp = open(name)
21+ n = 0
22+ d = True
23+ bs = 128 * 1024
24+ read = fp.read
25+ while d:
26+ s = read(bs)
27+ d = len(s.decode('utf-8', 'replace'))
28+ n += d
29+ print n
30+
31+def text(name):
32+ print len(open(name).read().decode('utf-8', 'replace'))
33+
34+if sys.argv[1] == 'bs':
35+ string(sys.argv[2])
36+if sys.argv[1] == 'lbs':
37+ lazystring(sys.argv[2])
38+elif sys.argv[1] == 'lazytext':
39+ lazytext(sys.argv[2])
40+elif sys.argv[1] == 'text':
41+ text(sys.argv[2])