10
10
REPEAT = 10
11
11
12
12
WB , ML = 12 , 5 # defaults used as a reference
13
+ WBITS = range (9 , 16 )
14
+ MEMLEVELS = range (1 , 10 )
13
15
14
16
15
17
def benchmark (data ):
16
18
size = collections .defaultdict (dict )
17
19
duration = collections .defaultdict (dict )
18
20
19
- for wbits in range ( 9 , 16 ) :
20
- for memLevel in range ( 1 , 10 ) :
21
+ for wbits in WBITS :
22
+ for memLevel in MEMLEVELS :
21
23
encoder = zlib .compressobj (wbits = - wbits , memLevel = memLevel )
22
24
encoded = []
23
25
@@ -43,14 +45,14 @@ def benchmark(data):
43
45
print ("=" * 79 )
44
46
print ("Compression ratio" )
45
47
print ("=" * 79 )
46
- print ("\t " .join (["wb \\ ml" ] + [str (memLevel ) for memLevel in range ( 1 , 10 ) ]))
47
- for wbits in range ( 9 , 16 ) :
48
+ print ("\t " .join (["wb \\ ml" ] + [str (memLevel ) for memLevel in MEMLEVELS ]))
49
+ for wbits in WBITS :
48
50
print (
49
51
"\t " .join (
50
52
[str (wbits )]
51
53
+ [
52
54
f"{ 100 * (1 - size [wbits ][memLevel ] / raw_size ):.1f} %"
53
- for memLevel in range ( 1 , 10 )
55
+ for memLevel in MEMLEVELS
54
56
]
55
57
)
56
58
)
@@ -60,14 +62,14 @@ def benchmark(data):
60
62
print ("=" * 79 )
61
63
print ("CPU time" )
62
64
print ("=" * 79 )
63
- print ("\t " .join (["wb \\ ml" ] + [str (memLevel ) for memLevel in range ( 1 , 10 ) ]))
64
- for wbits in range ( 9 , 16 ) :
65
+ print ("\t " .join (["wb \\ ml" ] + [str (memLevel ) for memLevel in MEMLEVELS ]))
66
+ for wbits in WBITS :
65
67
print (
66
68
"\t " .join (
67
69
[str (wbits )]
68
70
+ [
69
71
f"{ 1000 * duration [wbits ][memLevel ]:.1f} ms"
70
- for memLevel in range ( 1 , 10 )
72
+ for memLevel in MEMLEVELS
71
73
]
72
74
)
73
75
)
@@ -77,14 +79,14 @@ def benchmark(data):
77
79
print ("=" * 79 )
78
80
print (f"Size vs. { WB } \\ { ML } " )
79
81
print ("=" * 79 )
80
- print ("\t " .join (["wb \\ ml" ] + [str (memLevel ) for memLevel in range ( 1 , 10 ) ]))
81
- for wbits in range ( 9 , 16 ) :
82
+ print ("\t " .join (["wb \\ ml" ] + [str (memLevel ) for memLevel in MEMLEVELS ]))
83
+ for wbits in WBITS :
82
84
print (
83
85
"\t " .join (
84
86
[str (wbits )]
85
87
+ [
86
88
f"{ 100 * (size [wbits ][memLevel ] / size [WB ][ML ] - 1 ):.1f} %"
87
- for memLevel in range ( 1 , 10 )
89
+ for memLevel in MEMLEVELS
88
90
]
89
91
)
90
92
)
@@ -94,14 +96,14 @@ def benchmark(data):
94
96
print ("=" * 79 )
95
97
print (f"Time vs. { WB } \\ { ML } " )
96
98
print ("=" * 79 )
97
- print ("\t " .join (["wb \\ ml" ] + [str (memLevel ) for memLevel in range ( 1 , 10 ) ]))
98
- for wbits in range ( 9 , 16 ) :
99
+ print ("\t " .join (["wb \\ ml" ] + [str (memLevel ) for memLevel in MEMLEVELS ]))
100
+ for wbits in WBITS :
99
101
print (
100
102
"\t " .join (
101
103
[str (wbits )]
102
104
+ [
103
105
f"{ 100 * (duration [wbits ][memLevel ] / duration [WB ][ML ] - 1 ):.1f} %"
104
- for memLevel in range ( 1 , 10 )
106
+ for memLevel in MEMLEVELS
105
107
]
106
108
)
107
109
)
0 commit comments