In [1]:
%pylab inline
Populating the interactive namespace from numpy and matplotlib
In [2]:
plt.style.use('ggplot')
In [3]:
import pandas as pd
In [4]:
baseline = pd.read_table("baseline.tsv")
intvector = pd.read_table("intvector.tsv")
bench = pd.concat([baseline, intvector])
In [5]:
bench.type = map(lambda s: s.split(".")[-1], bench.type)
bench["absttype"] = map(lambda s: s.split("{")[0], bench.type)
In [6]:
figsize(12, 8)
In [7]:
def plot_bench(name, eltype):
bench[(bench.absttype == "IntArray") & (bench.eltype == eltype)]\
.pivot(index="w", columns="absttype", values="bench_" + name)\
.plot(style="o-", legend=False)
baseline = bench.ix[
(bench.absttype == "Array") & (bench.eltype == eltype),
"bench_" + name]
axhline(float(baseline), linestyle="--", label="Array (baseline)")
title("{} ({})".format(name, eltype))
ylim(ymin=0)
ylabel("sec / op")
#grid()
legend(loc="upper left")
savefig("{}_{}.png".format(name, eltype))
In [8]:
for eltype in ["UInt8", "UInt16", "UInt32", "UInt64"]:
for name in ["getindex", "setindex", "fill0", "fill1", "copy", "copysort"]:
plot_bench(name, eltype)
show()
In [9]:
pd.options.display.max_rows = 1000
In [10]:
bench.columns
Out[10]:
Index([u'bench_copy', u'bench_copysort', u'bench_fill0', u'bench_fill1',
u'bench_getindex', u'bench_setindex', u'eltype', u'type', u'w',
u'absttype'],
dtype='object')
In [11]:
baseline
Out[11]:
type
eltype
bench_getindex
bench_setindex
bench_fill0
bench_fill1
bench_copy
bench_copysort
0
Array{UInt8,1}
UInt8
3.249600e-10
4.919100e-10
0.000004
0.000004
0.000043
0.001423
1
Array{UInt16,1}
UInt16
3.249700e-10
6.546900e-10
0.000007
0.000017
0.000091
0.001311
2
Array{UInt32,1}
UInt32
3.250100e-10
6.561600e-10
0.000016
0.000022
0.000170
0.001673
3
Array{UInt64,1}
UInt64
3.249900e-10
9.778400e-10
0.000028
0.000039
0.000347
0.001354
In [12]:
intvector
Out[12]:
type
eltype
w
bench_getindex
bench_setindex
bench_fill0
bench_fill1
bench_copy
bench_copysort
0
IntArrays.IntArray{1,UInt8,1}
UInt8
1
6.475900e-10
3.087220e-09
3.730000e-07
3.750000e-07
0.000005
0.008443
1
IntArrays.IntArray{2,UInt8,1}
UInt8
2
6.476200e-10
2.997860e-09
5.220000e-07
5.210000e-07
0.000007
0.008753
2
IntArrays.IntArray{3,UInt8,1}
UInt8
3
6.476300e-10
3.663940e-09
1.533000e-06
3.507300e-05
0.000007
0.012005
3
IntArrays.IntArray{4,UInt8,1}
UInt8
4
6.474600e-10
2.916480e-09
1.975000e-06
1.969000e-06
0.000007
0.008599
4
IntArrays.IntArray{5,UInt8,1}
UInt8
5
6.476300e-10
4.229120e-09
2.422000e-06
6.919800e-05
0.000009
0.013971
5
IntArrays.IntArray{6,UInt8,1}
UInt8
6
6.476300e-10
4.184060e-09
2.858000e-06
6.973200e-05
0.000011
0.014266
6
IntArrays.IntArray{7,UInt8,1}
UInt8
7
6.475400e-10
4.792410e-09
3.307000e-06
1.125160e-04
0.000012
0.016087
7
IntArrays.IntArray{8,UInt8,1}
UInt8
8
6.475100e-10
1.162300e-09
3.740000e-06
3.739000e-06
0.000011
0.004355
8
IntArrays.IntArray{1,UInt16,1}
UInt16
1
6.474600e-10
2.700520e-09
3.770000e-07
1.265000e-06
0.000006
0.008088
9
IntArrays.IntArray{2,UInt16,1}
UInt16
2
7.169000e-10
2.663660e-09
5.760000e-07
2.304000e-06
0.000007
0.008119
10
IntArrays.IntArray{3,UInt16,1}
UInt16
3
6.475900e-10
3.205380e-09
1.525000e-06
2.308200e-05
0.000008
0.010359
11
IntArrays.IntArray{4,UInt16,1}
UInt16
4
6.474800e-10
2.624270e-09
1.975000e-06
4.575000e-06
0.000009
0.008066
12
IntArrays.IntArray{5,UInt16,1}
UInt16
5
6.475900e-10
3.497070e-09
2.874000e-06
4.905400e-05
0.000010
0.011745
13
IntArrays.IntArray{6,UInt16,1}
UInt16
6
6.476000e-10
3.492230e-09
2.850000e-06
4.480100e-05
0.000010
0.011761
14
IntArrays.IntArray{7,UInt16,1}
UInt16
7
6.475800e-10
3.775910e-09
3.300000e-06
8.419600e-05
0.000010
0.012861
15
IntArrays.IntArray{8,UInt16,1}
UInt16
8
6.474800e-10
2.618390e-09
3.772000e-06
8.858000e-06
0.000012
0.007916
16
IntArrays.IntArray{9,UInt16,1}
UInt16
9
6.475200e-10
4.062950e-09
4.238000e-06
1.279920e-04
0.000015
0.013537
17
IntArrays.IntArray{10,UInt16,1}
UInt16
10
6.476200e-10
4.070020e-09
4.622000e-06
9.743900e-05
0.000014
0.013786
18
IntArrays.IntArray{11,UInt16,1}
UInt16
11
1.611830e-09
4.817500e-09
5.059000e-06
1.790410e-04
0.000071
0.014953
19
IntArrays.IntArray{12,UInt16,1}
UInt16
12
6.476000e-10
4.215580e-09
5.520000e-06
8.974700e-05
0.000035
0.013797
20
IntArrays.IntArray{13,UInt16,1}
UInt16
13
6.476100e-10
4.635860e-09
5.941000e-06
2.230900e-04
0.000082
0.016061
21
IntArrays.IntArray{14,UInt16,1}
UInt16
14
6.476100e-10
4.636420e-09
7.088000e-06
1.682780e-04
0.000037
0.016011
22
IntArrays.IntArray{15,UInt16,1}
UInt16
15
6.474600e-10
4.937530e-09
6.842000e-06
2.918570e-04
0.000095
0.017120
23
IntArrays.IntArray{16,UInt16,1}
UInt16
16
6.475100e-10
1.159840e-09
7.279000e-06
1.745700e-05
0.000098
0.004365
24
IntArrays.IntArray{1,UInt32,1}
UInt32
1
6.474800e-10
3.213930e-09
3.730000e-07
7.540000e-07
0.000012
0.007735
25
IntArrays.IntArray{2,UInt32,1}
UInt32
2
6.475300e-10
2.672360e-09
5.230000e-07
1.317000e-06
0.000007
0.007913
26
IntArrays.IntArray{3,UInt32,1}
UInt32
3
6.474600e-10
3.214070e-09
1.529000e-06
1.359600e-05
0.000008
0.010145
27
IntArrays.IntArray{4,UInt32,1}
UInt32
4
1.453940e-09
2.641530e-09
1.962000e-06
2.575000e-06
0.000009
0.007823
28
IntArrays.IntArray{5,UInt32,1}
UInt32
5
7.720900e-10
3.367150e-09
2.412000e-06
3.842600e-05
0.000010
0.011034
29
IntArrays.IntArray{6,UInt32,1}
UInt32
6
6.476300e-10
3.206620e-09
2.850000e-06
3.278000e-05
0.000010
0.010639
30
IntArrays.IntArray{7,UInt32,1}
UInt32
7
6.476300e-10
3.350640e-09
3.300000e-06
6.538400e-05
0.000012
0.011493
31
IntArrays.IntArray{8,UInt32,1}
UInt32
8
6.475000e-10
2.893600e-09
3.733000e-06
4.843000e-06
0.000012
0.007859
32
IntArrays.IntArray{9,UInt32,1}
UInt32
9
6.475600e-10
3.640860e-09
4.177000e-06
9.158500e-05
0.000012
0.011754
33
IntArrays.IntArray{10,UInt32,1}
UInt32
10
6.476400e-10
3.489330e-09
4.618000e-06
1.401340e-04
0.000013
0.011801
34
IntArrays.IntArray{11,UInt32,1}
UInt32
11
6.474900e-10
3.629610e-09
5.064000e-06
1.297200e-04
0.000014
0.012284
35
IntArrays.IntArray{12,UInt32,1}
UInt32
12
7.721400e-10
3.492260e-09
5.521000e-06
6.534400e-05
0.000016
0.011722
36
IntArrays.IntArray{13,UInt32,1}
UInt32
13
6.475600e-10
3.775590e-09
5.958000e-06
1.876340e-04
0.000016
0.013076
37
IntArrays.IntArray{14,UInt32,1}
UInt32
14
6.475900e-10
3.778460e-09
6.402000e-06
1.306500e-04
0.000017
0.013041
38
IntArrays.IntArray{15,UInt32,1}
UInt32
15
6.475600e-10
3.922160e-09
6.824000e-06
2.049920e-04
0.000018
0.013600
39
IntArrays.IntArray{16,UInt32,1}
UInt32
16
6.474900e-10
2.606560e-09
7.280000e-06
9.390000e-06
0.000019
0.008070
40
IntArrays.IntArray{17,UInt32,1}
UInt32
17
7.169100e-10
4.059240e-09
7.719000e-06
3.162340e-04
0.000108
0.014106
41
IntArrays.IntArray{18,UInt32,1}
UInt32
18
6.475800e-10
4.060780e-09
8.144000e-06
1.611570e-04
0.000111
0.013917
42
IntArrays.IntArray{19,UInt32,1}
UInt32
19
6.474600e-10
4.201130e-09
8.721000e-06
3.383440e-04
0.000119
0.014612
43
IntArrays.IntArray{20,UInt32,1}
UInt32
20
6.476000e-10
4.058060e-09
9.050000e-06
1.707840e-04
0.000115
0.014214
44
IntArrays.IntArray{21,UInt32,1}
UInt32
21
6.476100e-10
4.521850e-09
9.479000e-06
3.366530e-04
0.000122
0.015394
45
IntArrays.IntArray{22,UInt32,1}
UInt32
22
6.476500e-10
4.347750e-09
9.923000e-06
2.641610e-04
0.000127
0.015300
46
IntArrays.IntArray{23,UInt32,1}
UInt32
23
1.453920e-09
4.644570e-09
1.037100e-05
3.878370e-04
0.000146
0.016166
47
IntArrays.IntArray{24,UInt32,1}
UInt32
24
6.474900e-10
4.059950e-09
1.287900e-05
1.334550e-04
0.000145
0.013897
48
IntArrays.IntArray{25,UInt32,1}
UInt32
25
6.475900e-10
5.515250e-09
1.124500e-05
4.426550e-04
0.000151
0.015968
49
IntArrays.IntArray{26,UInt32,1}
UInt32
26
6.474900e-10
4.629570e-09
1.169400e-05
4.207250e-04
0.000050
0.016171
50
IntArrays.IntArray{27,UInt32,1}
UInt32
27
6.476200e-10
4.765550e-09
1.213500e-05
4.999010e-04
0.000163
0.016760
51
IntArrays.IntArray{28,UInt32,1}
UInt32
28
6.475300e-10
4.620200e-09
1.256900e-05
2.908660e-04
0.000051
0.016077
52
IntArrays.IntArray{29,UInt32,1}
UInt32
29
6.475200e-10
4.908970e-09
1.301000e-05
5.408750e-04
0.000173
0.017724
53
IntArrays.IntArray{30,UInt32,1}
UInt32
30
7.169100e-10
4.903130e-09
1.360600e-05
5.613370e-04
0.000055
0.017427
54
IntArrays.IntArray{31,UInt32,1}
UInt32
31
6.475200e-10
5.046030e-09
1.387700e-05
6.708190e-04
0.000185
0.018357
55
IntArrays.IntArray{32,UInt32,1}
UInt32
32
6.474900e-10
1.362460e-09
1.434100e-05
2.020900e-05
0.000185
0.004300
56
IntArrays.IntArray{1,UInt64,1}
UInt64
1
7.720600e-10
2.604540e-09
4.110000e-07
5.100000e-07
0.000006
0.008151
57
IntArrays.IntArray{2,UInt64,1}
UInt64
2
6.475500e-10
2.677980e-09
5.410000e-07
8.070000e-07
0.000008
0.007748
58
IntArrays.IntArray{3,UInt64,1}
UInt64
3
6.475800e-10
2.994910e-09
1.526000e-06
1.232300e-05
0.000009
0.009816
59
IntArrays.IntArray{4,UInt64,1}
UInt64
4
6.474700e-10
2.661010e-09
1.972000e-06
1.819000e-06
0.000010
0.007781
60
IntArrays.IntArray{5,UInt64,1}
UInt64
5
6.475200e-10
3.214550e-09
2.415000e-06
2.503900e-05
0.000011
0.010299
61
IntArrays.IntArray{6,UInt64,1}
UInt64
6
6.476500e-10
3.812100e-09
2.859000e-06
2.447100e-05
0.000011
0.010301
62
IntArrays.IntArray{7,UInt64,1}
UInt64
7
6.476300e-10
3.290010e-09
3.303000e-06
4.580800e-05
0.000011
0.010535
63
IntArrays.IntArray{8,UInt64,1}
UInt64
8
6.475300e-10
2.635700e-09
3.737000e-06
4.014000e-06
0.000013
0.007814
64
IntArrays.IntArray{9,UInt64,1}
UInt64
9
6.474700e-10
3.299830e-09
4.181000e-06
7.746900e-05
0.000013
0.010605
65
IntArrays.IntArray{10,UInt64,1}
UInt64
10
7.168700e-10
3.378130e-09
4.631000e-06
4.950200e-05
0.000015
0.011013
66
IntArrays.IntArray{11,UInt64,1}
UInt64
11
6.475300e-10
3.280030e-09
5.117000e-06
1.199540e-04
0.000078
0.011080
67
IntArrays.IntArray{12,UInt64,1}
UInt64
12
6.476200e-10
3.207700e-09
5.525000e-06
4.865900e-05
0.000076
0.010507
68
IntArrays.IntArray{13,UInt64,1}
UInt64
13
6.476000e-10
3.440770e-09
5.997000e-06
1.218430e-04
0.000085
0.011443
69
IntArrays.IntArray{14,UInt64,1}
UInt64
14
6.476200e-10
3.957700e-09
6.392000e-06
9.101000e-05
0.000090
0.011590
70
IntArrays.IntArray{15,UInt64,1}
UInt64
15
6.474700e-10
3.420040e-09
6.825000e-06
1.368440e-04
0.000092
0.011727
71
IntArrays.IntArray{16,UInt64,1}
UInt64
16
6.475300e-10
2.619610e-09
7.272000e-06
6.537000e-06
0.000097
0.007994
72
IntArrays.IntArray{17,UInt64,1}
UInt64
17
9.713300e-10
3.495680e-09
7.731000e-06
1.574970e-04
0.000106
0.012076
73
IntArrays.IntArray{18,UInt64,1}
UInt64
18
6.474600e-10
3.498710e-09
8.157000e-06
1.606280e-04
0.000106
0.011867
74
IntArrays.IntArray{19,UInt64,1}
UInt64
19
6.475400e-10
4.254280e-09
8.595000e-06
1.895720e-04
0.000112
0.012327
75
IntArrays.IntArray{20,UInt64,1}
UInt64
20
6.476100e-10
3.864280e-09
9.037000e-06
9.845100e-05
0.000125
0.011664
76
IntArrays.IntArray{21,UInt64,1}
UInt64
21
6.476100e-10
4.115260e-09
9.479000e-06
1.908180e-04
0.000132
0.012269
77
IntArrays.IntArray{22,UInt64,1}
UInt64
22
7.721200e-10
3.635160e-09
9.920000e-06
1.782750e-04
0.000129
0.012380
78
IntArrays.IntArray{23,UInt64,1}
UInt64
23
6.476200e-10
3.706810e-09
1.036300e-05
1.853550e-04
0.000146
0.012884
79
IntArrays.IntArray{24,UInt64,1}
UInt64
24
6.487800e-10
3.495600e-09
1.080600e-05
1.062650e-04
0.000136
0.011428
80
IntArrays.IntArray{25,UInt64,1}
UInt64
25
6.476000e-10
3.779020e-09
1.124000e-05
2.280290e-04
0.000156
0.013507
81
IntArrays.IntArray{26,UInt64,1}
UInt64
26
6.476200e-10
3.781270e-09
1.170200e-05
2.514390e-04
0.000179
0.012908
82
IntArrays.IntArray{27,UInt64,1}
UInt64
27
1.180950e-09
4.591700e-09
1.214700e-05
2.276570e-04
0.000191
0.013715
83
IntArrays.IntArray{28,UInt64,1}
UInt64
28
6.476000e-10
4.187690e-09
1.256900e-05
2.458660e-04
0.000164
0.013018
84
IntArrays.IntArray{29,UInt64,1}
UInt64
29
6.476300e-10
3.921170e-09
1.302100e-05
2.351470e-04
0.000162
0.013820
85
IntArrays.IntArray{30,UInt64,1}
UInt64
30
6.475900e-10
3.921770e-09
1.344900e-05
2.837280e-04
0.000186
0.013853
86
IntArrays.IntArray{31,UInt64,1}
UInt64
31
6.476100e-10
3.993690e-09
1.389700e-05
2.508660e-04
0.000173
0.014065
87
IntArrays.IntArray{32,UInt64,1}
UInt64
32
6.474700e-10
2.621420e-09
1.433000e-05
1.703000e-05
0.000184
0.007977
88
IntArrays.IntArray{33,UInt64,1}
UInt64
33
6.474800e-10
4.380700e-09
1.476900e-05
2.733580e-04
0.000187
0.014525
89
IntArrays.IntArray{34,UInt64,1}
UInt64
34
6.475700e-10
4.377780e-09
1.521300e-05
3.957960e-04
0.000214
0.014507
90
IntArrays.IntArray{35,UInt64,1}
UInt64
35
6.474700e-10
4.456170e-09
1.563400e-05
5.010800e-04
0.000196
0.014768
91
IntArrays.IntArray{36,UInt64,1}
UInt64
36
8.898400e-10
4.383070e-09
1.609200e-05
3.644760e-04
0.000197
0.014707
92
IntArrays.IntArray{37,UInt64,1}
UInt64
37
6.474800e-10
4.528980e-09
1.651700e-05
3.115740e-04
0.000229
0.015259
93
IntArrays.IntArray{38,UInt64,1}
UInt64
38
6.476100e-10
4.522110e-09
1.697600e-05
5.304880e-04
0.000244
0.014907
94
IntArrays.IntArray{39,UInt64,1}
UInt64
39
6.485600e-10
4.594480e-09
1.743300e-05
3.471120e-04
0.000246
0.015624
95
IntArrays.IntArray{40,UInt64,1}
UInt64
40
6.474400e-10
4.385500e-09
1.785200e-05
2.645450e-04
0.000233
0.014399
96
IntArrays.IntArray{41,UInt64,1}
UInt64
41
6.474900e-10
4.753060e-09
1.830800e-05
3.523310e-04
0.000068
0.016061
97
IntArrays.IntArray{42,UInt64,1}
UInt64
42
6.476000e-10
4.834150e-09
2.235200e-05
6.313520e-04
0.000251
0.015510
98
IntArrays.IntArray{43,UInt64,1}
UInt64
43
6.475000e-10
4.738170e-09
1.917900e-05
3.717520e-04
0.000073
0.015628
99
IntArrays.IntArray{44,UInt64,1}
UInt64
44
6.475800e-10
4.669590e-09
1.964200e-05
4.598870e-04
0.000269
0.015945
100
IntArrays.IntArray{45,UInt64,1}
UInt64
45
6.475800e-10
4.810510e-09
2.005900e-05
4.125290e-04
0.000071
0.016399
101
IntArrays.IntArray{46,UInt64,1}
UInt64
46
6.475200e-10
4.964090e-09
2.051600e-05
7.817630e-04
0.000302
0.016704
102
IntArrays.IntArray{47,UInt64,1}
UInt64
47
6.474300e-10
4.877990e-09
2.094600e-05
4.482910e-04
0.000087
0.016450
103
IntArrays.IntArray{48,UInt64,1}
UInt64
48
6.474900e-10
4.379080e-09
2.146500e-05
2.206510e-04
0.000271
0.014378
104
IntArrays.IntArray{49,UInt64,1}
UInt64
49
6.474700e-10
5.037440e-09
2.188500e-05
4.216400e-04
0.000078
0.016618
105
IntArrays.IntArray{50,UInt64,1}
UInt64
50
6.476000e-10
4.948690e-09
2.229700e-05
8.988130e-04
0.000296
0.017308
106
IntArrays.IntArray{51,UInt64,1}
UInt64
51
6.475300e-10
5.022870e-09
2.270100e-05
4.396090e-04
0.000079
0.016654
107
IntArrays.IntArray{52,UInt64,1}
UInt64
52
6.475900e-10
4.951610e-09
2.313400e-05
5.314310e-04
0.000300
0.016942
108
IntArrays.IntArray{53,UInt64,1}
UInt64
53
6.475700e-10
5.090380e-09
2.358400e-05
5.054660e-04
0.000081
0.017938
109
IntArrays.IntArray{54,UInt64,1}
UInt64
54
6.474900e-10
5.085400e-09
2.401900e-05
9.772980e-04
0.000327
0.017299
110
IntArrays.IntArray{55,UInt64,1}
UInt64
55
7.169900e-10
5.159900e-09
2.446700e-05
4.741260e-04
0.000085
0.017833
111
IntArrays.IntArray{56,UInt64,1}
UInt64
56
6.475100e-10
4.949050e-09
2.494800e-05
5.465730e-04
0.000348
0.016421
112
IntArrays.IntArray{57,UInt64,1}
UInt64
57
6.475800e-10
5.236020e-09
2.535200e-05
4.925580e-04
0.000088
0.018419
113
IntArrays.IntArray{58,UInt64,1}
UInt64
58
6.475900e-10
5.232000e-09
2.579500e-05
1.055224e-03
0.000318
0.017564
114
IntArrays.IntArray{59,UInt64,1}
UInt64
59
6.476200e-10
5.304570e-09
2.905300e-05
5.088340e-04
0.000090
0.018487
115
IntArrays.IntArray{60,UInt64,1}
UInt64
60
6.475700e-10
5.234790e-09
2.667000e-05
5.639590e-04
0.000360
0.017276
116
IntArrays.IntArray{61,UInt64,1}
UInt64
61
7.169400e-10
5.378960e-09
2.711100e-05
5.254660e-04
0.000094
0.019460
117
IntArrays.IntArray{62,UInt64,1}
UInt64
62
7.720800e-10
5.374430e-09
2.757000e-05
1.126861e-03
0.000354
0.018031
118
IntArrays.IntArray{63,UInt64,1}
UInt64
63
6.475900e-10
5.444140e-09
2.796600e-05
5.505000e-04
0.000092
0.019187
119
IntArrays.IntArray{64,UInt64,1}
UInt64
64
6.475600e-10
1.741440e-09
2.842500e-05
3.521100e-05
0.000371
0.004289
In [ ]:
Content source: JuliaPackageMirrors/IntArrays.jl
Similar notebooks: