File tree 4 files changed +103
-89
lines changed 4 files changed +103
-89
lines changed Original file line number Diff line number Diff line change
1
+ require " ../src/sparsebitset"
Original file line number Diff line number Diff line change
1
+ require " ./bench_helper"
2
+
3
+ include SparseBitSet
4
+
5
+ def bm_001 ()
6
+ s = BitSet .new()
7
+ n = 100000
8
+ r = Random .new()
9
+ tbeg = Time .now
10
+ (1 ..n).each do |_ |
11
+ s.set(r.rand(n).to_u64)
12
+ end
13
+ tend = Time .now
14
+ printf(" \n Random set : %8d ns/op\n " , (tend- tbeg).ticks * 100 / n)
15
+ end
16
+
17
+ def bm_002 ()
18
+ s = BitSet .new()
19
+ n = 100000
20
+ r = Random .new()
21
+ tbeg = Time .now
22
+ (1 ..n).each do |_ |
23
+ s.test(r.rand(n).to_u64)
24
+ end
25
+ tend = Time .now
26
+ printf(" \n Random test : %8d ns/op\n " , (tend- tbeg).ticks * 100 / n)
27
+ end
28
+
29
+ def bm_003 ()
30
+ n = 100000
31
+ tbeg = Time .now
32
+ (1 ..n).each do |_ |
33
+ s = BitSet .new()
34
+ s.set(n.to_u64)
35
+ end
36
+ tend = Time .now
37
+ printf(" \n Creation test : %8d ns/op\n " , (tend- tbeg).ticks * 100 / n)
38
+ end
39
+
40
+ def bm_004 ()
41
+ n = 100000
42
+ s = BitSet .new()
43
+ (1 ..1000).each do |i |
44
+ s.set(i.to_u64* 100 )
45
+ end
46
+ c = 0
47
+ tbeg = Time .now
48
+ (1 ..n).each do |_ |
49
+ c += s.length
50
+ end
51
+ tend = Time .now
52
+ puts c
53
+ printf(" \n Count test : %8d ns/op\n " , (tend- tbeg).ticks * 100 / n)
54
+ end
55
+
56
+ def bm_005 ()
57
+ n = 1000
58
+ s = BitSet .new()
59
+ (1 ..3333).each do |i |
60
+ s.set(i.to_u64* 3 )
61
+ end
62
+ tbeg = Time .now
63
+ (1 ..n).each do |_ |
64
+ iter = s.each
65
+ c = 0
66
+ while iter.next != Iterator ::Stop ::INSTANCE
67
+ c += 1
68
+ end
69
+ end
70
+ tend = Time .now
71
+ printf(" \n Iteration test : %8d ns/op\n " , (tend- tbeg).ticks * 100 / n)
72
+ end
73
+
74
+ def bm_006 ()
75
+ n = 500
76
+ s = BitSet .new()
77
+ (1 ..3333).each do |i |
78
+ s.set(i.to_u64* 30 )
79
+ end
80
+ tbeg = Time .now
81
+ (1 ..n).each do |_ |
82
+ iter = s.each
83
+ c = 0
84
+ while iter.next != Iterator ::Stop ::INSTANCE
85
+ c += 1
86
+ end
87
+ end
88
+ tend = Time .now
89
+ printf(" \n Iteration test : %8d ns/op\n " , (tend- tbeg).ticks * 100 / n)
90
+ end
91
+
92
+ def main ()
93
+ bm_001()
94
+ bm_002()
95
+ bm_003()
96
+ bm_004()
97
+ bm_005()
98
+ bm_006()
99
+ end
100
+
101
+ main()
Original file line number Diff line number Diff line change @@ -969,92 +969,4 @@ describe SparseBitSet do
969
969
t.strict_superset?(s).should eq(true )
970
970
end
971
971
end
972
-
973
- describe " benchmarks" do
974
- it " should set several bits" do
975
- s = BitSet .new()
976
- n = 100000
977
- r = Random .new()
978
- tbeg = Time .now
979
- (1 ..n).each do |_ |
980
- s.set(r.rand(n).to_u64)
981
- end
982
- tend = Time .now
983
- printf(" \n Random set : %8d ns/op\n " , (tend- tbeg).ticks * 100 / n)
984
- end
985
-
986
- it " should test several bits" do
987
- s = BitSet .new()
988
- n = 100000
989
- r = Random .new()
990
- tbeg = Time .now
991
- (1 ..n).each do |_ |
992
- s.test(r.rand(n).to_u64)
993
- end
994
- tend = Time .now
995
- printf(" \n Random test : %8d ns/op\n " , (tend- tbeg).ticks * 100 / n)
996
- end
997
-
998
- it " should test creation of a bitset" do
999
- n = 100000
1000
- tbeg = Time .now
1001
- (1 ..n).each do |_ |
1002
- s = BitSet .new()
1003
- s.set(n.to_u64)
1004
- end
1005
- tend = Time .now
1006
- printf(" \n Creation test : %8d ns/op\n " , (tend- tbeg).ticks * 100 / n)
1007
- end
1008
-
1009
- it " should set several bits, and count them" do
1010
- n = 100000
1011
- s = BitSet .new()
1012
- (1 ..1000).each do |i |
1013
- s.set(i.to_u64* 100 )
1014
- end
1015
- c = 0
1016
- tbeg = Time .now
1017
- (1 ..n).each do |_ |
1018
- c += s.length
1019
- end
1020
- tend = Time .now
1021
- printf(" \n Count test : %8d ns/op\n " , (tend- tbeg).ticks * 100 / n)
1022
- end
1023
-
1024
- it " should set several bits, and iterate over them" do
1025
- n = 1000
1026
- s = BitSet .new()
1027
- (1 ..3333).each do |i |
1028
- s.set(i.to_u64* 3 )
1029
- end
1030
- tbeg = Time .now
1031
- (1 ..n).each do |_ |
1032
- iter = s.each
1033
- c = 0
1034
- while iter.next != Iterator ::Stop ::INSTANCE
1035
- c += 1
1036
- end
1037
- end
1038
- tend = Time .now
1039
- printf(" \n Iteration test : %8d ns/op\n " , (tend- tbeg).ticks * 100 / n)
1040
- end
1041
-
1042
- it " should set several bits, and iterate over them" do
1043
- n = 500
1044
- s = BitSet .new()
1045
- (1 ..3333).each do |i |
1046
- s.set(i.to_u64* 30 )
1047
- end
1048
- tbeg = Time .now
1049
- (1 ..n).each do |_ |
1050
- iter = s.each
1051
- c = 0
1052
- while iter.next != Iterator ::Stop ::INSTANCE
1053
- c += 1
1054
- end
1055
- end
1056
- tend = Time .now
1057
- printf(" \n Iteration test : %8d ns/op\n " , (tend- tbeg).ticks * 100 / n)
1058
- end
1059
- end
1060
972
end
Original file line number Diff line number Diff line change 1
1
module SparseBitSet
2
- VERSION = " 0.2 .0"
2
+ VERSION = " 0.3 .0"
3
3
end
You can’t perform that action at this time.
0 commit comments