io_shuten 0.0.3.dev1 → 0.1.0.dev6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/Gemfile +11 -2
- data/Gemfile.lock +25 -0
- data/README.md +7 -0
- data/Rakefile +7 -1
- data/benchmark/viiite-template.rb +79 -0
- data/benchmarks/buffer.rb +7 -0
- data/benchmarks/memory.rb +7 -0
- data/benchmarks.sh +59 -0
- data/io_shuten.gemspec +35 -6
- data/lib/io_shuten/redis.rb +21 -21
- data/lib/io_shuten/stores/base_container.rb +20 -0
- data/lib/io_shuten/stores/redis/container.rb +38 -0
- data/lib/io_shuten/stores/redis/key_value/collection.rb +31 -0
- data/lib/io_shuten/stores/redis/key_value/single.rb +25 -0
- data/lib/io_shuten/stores/redis/key_value.rb +14 -0
- data/lib/io_shuten/stores/redis/pub_sub/publisher.rb +0 -0
- data/lib/io_shuten/stores/redis/pub_sub/subscriber.rb +0 -0
- data/lib/io_shuten/stores/redis/pub_sub.rb +12 -0
- data/lib/io_shuten/stores/redis.rb +4 -1
- data/lib/io_shuten/stores.rb +1 -1
- data/lib/io_shuten/version.rb +1 -1
- data/lib/io_shuten/zmq.rb +10 -0
- data/lib/io_shuten.rb +1 -1
- data/spec/examples/logger_spec.rb +36 -2
- data/spec/lib/buffer_spec.rb +5 -3
- data/spec/lib/memory_spec.rb +5 -3
- data/spec/lib/redis_spec.rb +104 -2
- data/spec/lib/zmq_spec.rb +7 -0
- data/spec/spec_helper.rb +10 -0
- metadata +221 -218
- data/benchmark/compare_mem_w_buf.rb +0 -134
metadata
CHANGED
@@ -1,258 +1,258 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: io_shuten
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.0.dev6
|
5
5
|
prerelease: 6
|
6
|
-
segments:
|
7
|
-
- 0
|
8
|
-
- 0
|
9
|
-
- 3
|
10
|
-
- dev
|
11
|
-
- 1
|
12
|
-
version: 0.0.3.dev1
|
13
6
|
platform: ruby
|
14
|
-
authors:
|
7
|
+
authors:
|
15
8
|
- Christoph Grabo
|
16
9
|
autorequire:
|
17
10
|
bindir: bin
|
18
11
|
cert_chain: []
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
requirement: &
|
12
|
+
date: 2012-01-30 00:00:00.000000000 Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
15
|
+
name: iobuffer
|
16
|
+
requirement: &7717180 !ruby/object:Gem::Requirement
|
24
17
|
none: false
|
25
|
-
requirements:
|
18
|
+
requirements:
|
26
19
|
- - ~>
|
27
|
-
- !ruby/object:Gem::Version
|
28
|
-
hash: 23
|
29
|
-
segments:
|
30
|
-
- 1
|
31
|
-
- 0
|
32
|
-
- 0
|
20
|
+
- !ruby/object:Gem::Version
|
33
21
|
version: 1.0.0
|
34
|
-
version_requirements: *id001
|
35
|
-
name: iobuffer
|
36
|
-
prerelease: false
|
37
22
|
type: :runtime
|
38
|
-
|
39
|
-
|
23
|
+
prerelease: false
|
24
|
+
version_requirements: *7717180
|
25
|
+
- !ruby/object:Gem::Dependency
|
26
|
+
name: hiredis
|
27
|
+
requirement: &7714860 !ruby/object:Gem::Requirement
|
40
28
|
none: false
|
41
|
-
requirements:
|
29
|
+
requirements:
|
42
30
|
- - ~>
|
43
|
-
- !ruby/object:Gem::Version
|
44
|
-
hash: 7
|
45
|
-
segments:
|
46
|
-
- 0
|
47
|
-
- 4
|
48
|
-
- 4
|
31
|
+
- !ruby/object:Gem::Version
|
49
32
|
version: 0.4.4
|
50
|
-
version_requirements: *id002
|
51
|
-
name: hiredis
|
52
|
-
prerelease: false
|
53
33
|
type: :runtime
|
54
|
-
|
55
|
-
|
34
|
+
prerelease: false
|
35
|
+
version_requirements: *7714860
|
36
|
+
- !ruby/object:Gem::Dependency
|
37
|
+
name: redis
|
38
|
+
requirement: &7713120 !ruby/object:Gem::Requirement
|
56
39
|
none: false
|
57
|
-
requirements:
|
40
|
+
requirements:
|
58
41
|
- - ~>
|
59
|
-
- !ruby/object:Gem::Version
|
60
|
-
hash: 3
|
61
|
-
segments:
|
62
|
-
- 2
|
63
|
-
- 2
|
64
|
-
- 2
|
42
|
+
- !ruby/object:Gem::Version
|
65
43
|
version: 2.2.2
|
66
|
-
|
67
|
-
name: redis
|
44
|
+
type: :runtime
|
68
45
|
prerelease: false
|
46
|
+
version_requirements: *7713120
|
47
|
+
- !ruby/object:Gem::Dependency
|
48
|
+
name: redis-namespace
|
49
|
+
requirement: &7728400 !ruby/object:Gem::Requirement
|
50
|
+
none: false
|
51
|
+
requirements:
|
52
|
+
- - ! '>='
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0'
|
69
55
|
type: :runtime
|
70
|
-
|
71
|
-
|
56
|
+
prerelease: false
|
57
|
+
version_requirements: *7728400
|
58
|
+
- !ruby/object:Gem::Dependency
|
59
|
+
name: bson_ext
|
60
|
+
requirement: &7727560 !ruby/object:Gem::Requirement
|
72
61
|
none: false
|
73
|
-
requirements:
|
62
|
+
requirements:
|
74
63
|
- - ~>
|
75
|
-
- !ruby/object:Gem::Version
|
76
|
-
hash: 7
|
77
|
-
segments:
|
78
|
-
- 1
|
79
|
-
- 5
|
80
|
-
- 2
|
64
|
+
- !ruby/object:Gem::Version
|
81
65
|
version: 1.5.2
|
82
|
-
version_requirements: *id004
|
83
|
-
name: bson_ext
|
84
|
-
prerelease: false
|
85
66
|
type: :runtime
|
86
|
-
|
87
|
-
|
67
|
+
prerelease: false
|
68
|
+
version_requirements: *7727560
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: mongo
|
71
|
+
requirement: &7726400 !ruby/object:Gem::Requirement
|
88
72
|
none: false
|
89
|
-
requirements:
|
73
|
+
requirements:
|
90
74
|
- - ~>
|
91
|
-
- !ruby/object:Gem::Version
|
92
|
-
hash: 7
|
93
|
-
segments:
|
94
|
-
- 1
|
95
|
-
- 5
|
96
|
-
- 2
|
75
|
+
- !ruby/object:Gem::Version
|
97
76
|
version: 1.5.2
|
98
|
-
|
99
|
-
name: mongo
|
77
|
+
type: :runtime
|
100
78
|
prerelease: false
|
79
|
+
version_requirements: *7726400
|
80
|
+
- !ruby/object:Gem::Dependency
|
81
|
+
name: ffi
|
82
|
+
requirement: &7725120 !ruby/object:Gem::Requirement
|
83
|
+
none: false
|
84
|
+
requirements:
|
85
|
+
- - ! '>='
|
86
|
+
- !ruby/object:Gem::Version
|
87
|
+
version: '0'
|
101
88
|
type: :runtime
|
102
|
-
|
103
|
-
|
89
|
+
prerelease: false
|
90
|
+
version_requirements: *7725120
|
91
|
+
- !ruby/object:Gem::Dependency
|
92
|
+
name: ffi-rzmq
|
93
|
+
requirement: &7724060 !ruby/object:Gem::Requirement
|
104
94
|
none: false
|
105
|
-
requirements:
|
106
|
-
- -
|
107
|
-
- !ruby/object:Gem::Version
|
108
|
-
|
109
|
-
|
110
|
-
- 0
|
111
|
-
version: "0"
|
112
|
-
version_requirements: *id006
|
113
|
-
name: rake
|
95
|
+
requirements:
|
96
|
+
- - ! '>='
|
97
|
+
- !ruby/object:Gem::Version
|
98
|
+
version: '0'
|
99
|
+
type: :runtime
|
114
100
|
prerelease: false
|
115
|
-
|
116
|
-
- !ruby/object:Gem::Dependency
|
117
|
-
|
101
|
+
version_requirements: *7724060
|
102
|
+
- !ruby/object:Gem::Dependency
|
103
|
+
name: rake
|
104
|
+
requirement: &7737240 !ruby/object:Gem::Requirement
|
118
105
|
none: false
|
119
|
-
requirements:
|
120
|
-
- -
|
121
|
-
- !ruby/object:Gem::Version
|
122
|
-
|
123
|
-
|
124
|
-
- 0
|
125
|
-
version: "0"
|
126
|
-
version_requirements: *id007
|
127
|
-
name: jeweler
|
106
|
+
requirements:
|
107
|
+
- - ! '>='
|
108
|
+
- !ruby/object:Gem::Version
|
109
|
+
version: '0'
|
110
|
+
type: :development
|
128
111
|
prerelease: false
|
112
|
+
version_requirements: *7737240
|
113
|
+
- !ruby/object:Gem::Dependency
|
114
|
+
name: jeweler
|
115
|
+
requirement: &7733580 !ruby/object:Gem::Requirement
|
116
|
+
none: false
|
117
|
+
requirements:
|
118
|
+
- - ! '>='
|
119
|
+
- !ruby/object:Gem::Version
|
120
|
+
version: '0'
|
129
121
|
type: :development
|
130
|
-
|
131
|
-
|
122
|
+
prerelease: false
|
123
|
+
version_requirements: *7733580
|
124
|
+
- !ruby/object:Gem::Dependency
|
125
|
+
name: rspec
|
126
|
+
requirement: &7729600 !ruby/object:Gem::Requirement
|
132
127
|
none: false
|
133
|
-
requirements:
|
128
|
+
requirements:
|
134
129
|
- - ~>
|
135
|
-
- !ruby/object:Gem::Version
|
136
|
-
hash: 47
|
137
|
-
segments:
|
138
|
-
- 2
|
139
|
-
- 8
|
140
|
-
- 0
|
130
|
+
- !ruby/object:Gem::Version
|
141
131
|
version: 2.8.0
|
142
|
-
version_requirements: *id008
|
143
|
-
name: rspec
|
144
|
-
prerelease: false
|
145
132
|
type: :development
|
146
|
-
- !ruby/object:Gem::Dependency
|
147
|
-
requirement: &id009 !ruby/object:Gem::Requirement
|
148
|
-
none: false
|
149
|
-
requirements:
|
150
|
-
- - ">="
|
151
|
-
- !ruby/object:Gem::Version
|
152
|
-
hash: 3
|
153
|
-
segments:
|
154
|
-
- 0
|
155
|
-
version: "0"
|
156
|
-
version_requirements: *id009
|
157
|
-
name: simplecov
|
158
133
|
prerelease: false
|
159
|
-
|
160
|
-
- !ruby/object:Gem::Dependency
|
161
|
-
|
134
|
+
version_requirements: *7729600
|
135
|
+
- !ruby/object:Gem::Dependency
|
136
|
+
name: simplecov
|
137
|
+
requirement: &7742140 !ruby/object:Gem::Requirement
|
162
138
|
none: false
|
163
|
-
requirements:
|
164
|
-
- -
|
165
|
-
- !ruby/object:Gem::Version
|
166
|
-
|
167
|
-
segments:
|
168
|
-
- 0
|
169
|
-
version: "0"
|
170
|
-
version_requirements: *id010
|
171
|
-
name: simplecov-rcov
|
172
|
-
prerelease: false
|
139
|
+
requirements:
|
140
|
+
- - ! '>='
|
141
|
+
- !ruby/object:Gem::Version
|
142
|
+
version: '0'
|
173
143
|
type: :development
|
174
|
-
- !ruby/object:Gem::Dependency
|
175
|
-
requirement: &id011 !ruby/object:Gem::Requirement
|
176
|
-
none: false
|
177
|
-
requirements:
|
178
|
-
- - ">="
|
179
|
-
- !ruby/object:Gem::Version
|
180
|
-
hash: 3
|
181
|
-
segments:
|
182
|
-
- 0
|
183
|
-
version: "0"
|
184
|
-
version_requirements: *id011
|
185
|
-
name: simplecov-csv
|
186
144
|
prerelease: false
|
187
|
-
|
188
|
-
- !ruby/object:Gem::Dependency
|
189
|
-
|
145
|
+
version_requirements: *7742140
|
146
|
+
- !ruby/object:Gem::Dependency
|
147
|
+
name: simplecov-rcov
|
148
|
+
requirement: &7740620 !ruby/object:Gem::Requirement
|
190
149
|
none: false
|
191
|
-
requirements:
|
192
|
-
- -
|
193
|
-
- !ruby/object:Gem::Version
|
194
|
-
|
195
|
-
|
196
|
-
- 0
|
197
|
-
version: "0"
|
198
|
-
version_requirements: *id012
|
199
|
-
name: redcarpet
|
150
|
+
requirements:
|
151
|
+
- - ! '>='
|
152
|
+
- !ruby/object:Gem::Version
|
153
|
+
version: '0'
|
154
|
+
type: :development
|
200
155
|
prerelease: false
|
156
|
+
version_requirements: *7740620
|
157
|
+
- !ruby/object:Gem::Dependency
|
158
|
+
name: simplecov-csv
|
159
|
+
requirement: &7739560 !ruby/object:Gem::Requirement
|
160
|
+
none: false
|
161
|
+
requirements:
|
162
|
+
- - ! '>='
|
163
|
+
- !ruby/object:Gem::Version
|
164
|
+
version: '0'
|
201
165
|
type: :development
|
202
|
-
|
203
|
-
|
166
|
+
prerelease: false
|
167
|
+
version_requirements: *7739560
|
168
|
+
- !ruby/object:Gem::Dependency
|
169
|
+
name: redcarpet
|
170
|
+
requirement: &7738420 !ruby/object:Gem::Requirement
|
204
171
|
none: false
|
205
|
-
requirements:
|
206
|
-
- -
|
207
|
-
- !ruby/object:Gem::Version
|
208
|
-
|
209
|
-
|
210
|
-
|
211
|
-
|
212
|
-
|
172
|
+
requirements:
|
173
|
+
- - ! '>='
|
174
|
+
- !ruby/object:Gem::Version
|
175
|
+
version: '0'
|
176
|
+
type: :development
|
177
|
+
prerelease: false
|
178
|
+
version_requirements: *7738420
|
179
|
+
- !ruby/object:Gem::Dependency
|
213
180
|
name: yard
|
181
|
+
requirement: &7753620 !ruby/object:Gem::Requirement
|
182
|
+
none: false
|
183
|
+
requirements:
|
184
|
+
- - ! '>='
|
185
|
+
- !ruby/object:Gem::Version
|
186
|
+
version: '0'
|
187
|
+
type: :development
|
214
188
|
prerelease: false
|
189
|
+
version_requirements: *7753620
|
190
|
+
- !ruby/object:Gem::Dependency
|
191
|
+
name: yard-blame
|
192
|
+
requirement: &7752220 !ruby/object:Gem::Requirement
|
193
|
+
none: false
|
194
|
+
requirements:
|
195
|
+
- - ! '>='
|
196
|
+
- !ruby/object:Gem::Version
|
197
|
+
version: '0'
|
215
198
|
type: :development
|
216
|
-
|
217
|
-
|
199
|
+
prerelease: false
|
200
|
+
version_requirements: *7752220
|
201
|
+
- !ruby/object:Gem::Dependency
|
202
|
+
name: pry
|
203
|
+
requirement: &7751620 !ruby/object:Gem::Requirement
|
218
204
|
none: false
|
219
|
-
requirements:
|
220
|
-
- -
|
221
|
-
- !ruby/object:Gem::Version
|
222
|
-
|
223
|
-
|
224
|
-
- 0
|
225
|
-
version: "0"
|
226
|
-
version_requirements: *id014
|
227
|
-
name: yard-blame
|
205
|
+
requirements:
|
206
|
+
- - ! '>='
|
207
|
+
- !ruby/object:Gem::Version
|
208
|
+
version: '0'
|
209
|
+
type: :development
|
228
210
|
prerelease: false
|
211
|
+
version_requirements: *7751620
|
212
|
+
- !ruby/object:Gem::Dependency
|
213
|
+
name: alf
|
214
|
+
requirement: &7750760 !ruby/object:Gem::Requirement
|
215
|
+
none: false
|
216
|
+
requirements:
|
217
|
+
- - ! '>='
|
218
|
+
- !ruby/object:Gem::Version
|
219
|
+
version: '0'
|
229
220
|
type: :development
|
230
|
-
|
231
|
-
|
221
|
+
prerelease: false
|
222
|
+
version_requirements: *7750760
|
223
|
+
- !ruby/object:Gem::Dependency
|
224
|
+
name: fastercsv
|
225
|
+
requirement: &7749820 !ruby/object:Gem::Requirement
|
232
226
|
none: false
|
233
|
-
requirements:
|
234
|
-
- -
|
235
|
-
- !ruby/object:Gem::Version
|
236
|
-
|
237
|
-
|
238
|
-
- 0
|
239
|
-
version: "0"
|
240
|
-
version_requirements: *id015
|
241
|
-
name: pry
|
227
|
+
requirements:
|
228
|
+
- - ! '>='
|
229
|
+
- !ruby/object:Gem::Version
|
230
|
+
version: '0'
|
231
|
+
type: :development
|
242
232
|
prerelease: false
|
233
|
+
version_requirements: *7749820
|
234
|
+
- !ruby/object:Gem::Dependency
|
235
|
+
name: viiite
|
236
|
+
requirement: &7749120 !ruby/object:Gem::Requirement
|
237
|
+
none: false
|
238
|
+
requirements:
|
239
|
+
- - ! '>='
|
240
|
+
- !ruby/object:Gem::Version
|
241
|
+
version: '0'
|
243
242
|
type: :development
|
244
|
-
|
245
|
-
|
243
|
+
prerelease: false
|
244
|
+
version_requirements: *7749120
|
245
|
+
description: IO::shuten – Use databases as IO handler like you would do with files
|
246
|
+
and streams.
|
247
|
+
email:
|
246
248
|
- chris@dinarrr.com
|
247
249
|
executables: []
|
248
|
-
|
249
250
|
extensions: []
|
250
|
-
|
251
|
-
extra_rdoc_files:
|
251
|
+
extra_rdoc_files:
|
252
252
|
- LICENSE
|
253
253
|
- LICENSE.de
|
254
254
|
- README.md
|
255
|
-
files:
|
255
|
+
files:
|
256
256
|
- .rspec
|
257
257
|
- .rvmrc
|
258
258
|
- .simplecov
|
@@ -264,7 +264,10 @@ files:
|
|
264
264
|
- LICENSE.de
|
265
265
|
- README.md
|
266
266
|
- Rakefile
|
267
|
-
- benchmark/
|
267
|
+
- benchmark/viiite-template.rb
|
268
|
+
- benchmarks.sh
|
269
|
+
- benchmarks/buffer.rb
|
270
|
+
- benchmarks/memory.rb
|
268
271
|
- doc/IO_3A_3ABuffer.html
|
269
272
|
- doc/IO_shuten.html
|
270
273
|
- doc/IO_shuten/Base.html
|
@@ -316,13 +319,20 @@ files:
|
|
316
319
|
- lib/io_shuten/mongo.rb
|
317
320
|
- lib/io_shuten/redis.rb
|
318
321
|
- lib/io_shuten/stores.rb
|
322
|
+
- lib/io_shuten/stores/base_container.rb
|
319
323
|
- lib/io_shuten/stores/mongo.rb
|
320
324
|
- lib/io_shuten/stores/mongo/collection.rb
|
321
325
|
- lib/io_shuten/stores/mongo/gridfs.rb
|
322
326
|
- lib/io_shuten/stores/redis.rb
|
327
|
+
- lib/io_shuten/stores/redis/container.rb
|
323
328
|
- lib/io_shuten/stores/redis/key_value.rb
|
329
|
+
- lib/io_shuten/stores/redis/key_value/collection.rb
|
330
|
+
- lib/io_shuten/stores/redis/key_value/single.rb
|
324
331
|
- lib/io_shuten/stores/redis/pub_sub.rb
|
332
|
+
- lib/io_shuten/stores/redis/pub_sub/publisher.rb
|
333
|
+
- lib/io_shuten/stores/redis/pub_sub/subscriber.rb
|
325
334
|
- lib/io_shuten/version.rb
|
335
|
+
- lib/io_shuten/zmq.rb
|
326
336
|
- spec/examples/logger_spec.rb
|
327
337
|
- spec/lib/buffer_spec.rb
|
328
338
|
- spec/lib/memory_spec.rb
|
@@ -335,41 +345,34 @@ files:
|
|
335
345
|
- spec/lib/stores/redis/pub_sub_spec.rb
|
336
346
|
- spec/lib/stores/redis_spec.rb
|
337
347
|
- spec/lib/stores_spec.rb
|
348
|
+
- spec/lib/zmq_spec.rb
|
338
349
|
- spec/spec_helper.rb
|
339
350
|
homepage: http://github.com/asaaki/io_shuten
|
340
|
-
licenses:
|
351
|
+
licenses:
|
341
352
|
- MIT
|
342
353
|
post_install_message:
|
343
354
|
rdoc_options: []
|
344
|
-
|
345
|
-
require_paths:
|
355
|
+
require_paths:
|
346
356
|
- lib
|
347
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
357
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
348
358
|
none: false
|
349
|
-
requirements:
|
350
|
-
- -
|
351
|
-
- !ruby/object:Gem::Version
|
352
|
-
|
353
|
-
segments:
|
359
|
+
requirements:
|
360
|
+
- - ! '>='
|
361
|
+
- !ruby/object:Gem::Version
|
362
|
+
version: '0'
|
363
|
+
segments:
|
354
364
|
- 0
|
355
|
-
|
356
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
365
|
+
hash: 1748778252042175746
|
366
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
357
367
|
none: false
|
358
|
-
requirements:
|
359
|
-
- -
|
360
|
-
- !ruby/object:Gem::Version
|
361
|
-
hash: 25
|
362
|
-
segments:
|
363
|
-
- 1
|
364
|
-
- 3
|
365
|
-
- 1
|
368
|
+
requirements:
|
369
|
+
- - ! '>'
|
370
|
+
- !ruby/object:Gem::Version
|
366
371
|
version: 1.3.1
|
367
372
|
requirements: []
|
368
|
-
|
369
373
|
rubyforge_project:
|
370
|
-
rubygems_version: 1.8.
|
374
|
+
rubygems_version: 1.8.15
|
371
375
|
signing_key:
|
372
376
|
specification_version: 3
|
373
|
-
summary:
|
377
|
+
summary: IO::shuten – Use databases as IO handler. (NOT YET READY FOR PRODUCTION!)
|
374
378
|
test_files: []
|
375
|
-
|
@@ -1,134 +0,0 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
$LOAD_PATH.unshift File.expand_path("../../lib", __FILE__)
|
3
|
-
require "rubygems"
|
4
|
-
require "benchmark"
|
5
|
-
require "bundler/setup"
|
6
|
-
require "io_shuten"
|
7
|
-
require "logger"
|
8
|
-
|
9
|
-
IOM = IO_shuten::Memory
|
10
|
-
IOB = IO_shuten::Buffer
|
11
|
-
|
12
|
-
loops_write = 5000
|
13
|
-
loops_logger = 5000
|
14
|
-
loops_files = 2000
|
15
|
-
loops_files_outer = 5
|
16
|
-
|
17
|
-
lorem_ipsum = <<LOREM
|
18
|
-
Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod
|
19
|
-
tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.
|
20
|
-
At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren,
|
21
|
-
no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet,
|
22
|
-
consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et
|
23
|
-
dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo
|
24
|
-
dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem
|
25
|
-
ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed
|
26
|
-
diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam
|
27
|
-
voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd
|
28
|
-
gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.
|
29
|
-
LOREM
|
30
|
-
|
31
|
-
tmp_path = File.expand_path("../../tmp", __FILE__)
|
32
|
-
Dir.mkdir(tmp_path) unless File.exists?(tmp_path)
|
33
|
-
|
34
|
-
puts
|
35
|
-
puts "BENCHMARK: IO_shuten::Buffer vs IO_shuten::Memory #{ENV['TRAVIS'] ? '(TRAVIS CI)' : ''}"
|
36
|
-
|
37
|
-
puts
|
38
|
-
puts "WRITES"
|
39
|
-
puts
|
40
|
-
Benchmark.bmbm do |x|
|
41
|
-
x.report "W IO_shuten::Buffer" do
|
42
|
-
IO_shuten::Buffer.purge_instances!
|
43
|
-
loops_write.times do |i|
|
44
|
-
iob = IO_shuten::Buffer.new("wbuff-#{i}")
|
45
|
-
iob.write lorem_ipsum
|
46
|
-
end
|
47
|
-
end
|
48
|
-
x.report "W IO_shuten::Memory" do
|
49
|
-
IO_shuten::Memory.purge_instances!
|
50
|
-
loops_write.times do |i|
|
51
|
-
iom = IO_shuten::Memory.new("wmem-#{i}")
|
52
|
-
iom.write lorem_ipsum
|
53
|
-
end
|
54
|
-
end
|
55
|
-
end
|
56
|
-
|
57
|
-
puts
|
58
|
-
puts "LOGGING"
|
59
|
-
puts
|
60
|
-
Benchmark.bmbm do |x|
|
61
|
-
x.report "L IO_shuten::Buffer" do
|
62
|
-
IO_shuten::Buffer.purge_instances!
|
63
|
-
loops_logger.times do |i|
|
64
|
-
logdev = IO_shuten::Buffer.new("logdev-#{i}")
|
65
|
-
logger = Logger.new(logdev)
|
66
|
-
logger.info lorem_ipsum
|
67
|
-
logger.debug "counter: #{i}"
|
68
|
-
end
|
69
|
-
end
|
70
|
-
x.report "L IO_shuten::Memory" do
|
71
|
-
IO_shuten::Memory.purge_instances!
|
72
|
-
loops_logger.times do |i|
|
73
|
-
logdev = IO_shuten::Memory.new("logdev-#{i}")
|
74
|
-
logger = Logger.new(logdev)
|
75
|
-
logger.info lorem_ipsum
|
76
|
-
logger.debug "counter: #{i}"
|
77
|
-
end
|
78
|
-
end
|
79
|
-
end
|
80
|
-
|
81
|
-
puts
|
82
|
-
puts "FILE WRITES"
|
83
|
-
puts
|
84
|
-
Benchmark.bmbm do |x|
|
85
|
-
x.report "FW IO_shuten::Buffer" do
|
86
|
-
IO_shuten::Buffer.purge_instances!
|
87
|
-
loops_files.times do |i|
|
88
|
-
iob = IO_shuten::Buffer.new("#{tmp_path}/wbuff-#{i}")
|
89
|
-
iob.write lorem_ipsum
|
90
|
-
iob.save_to_file
|
91
|
-
end
|
92
|
-
end
|
93
|
-
x.report "FW IO_shuten::Memory" do
|
94
|
-
IO_shuten::Memory.purge_instances!
|
95
|
-
loops_files.times do |i|
|
96
|
-
iom = IO_shuten::Memory.new("#{tmp_path}/wmem-#{i}")
|
97
|
-
iom.write lorem_ipsum
|
98
|
-
iom.save_to_file
|
99
|
-
end
|
100
|
-
end
|
101
|
-
end
|
102
|
-
|
103
|
-
puts
|
104
|
-
puts "FILE READS"
|
105
|
-
puts
|
106
|
-
Benchmark.bmbm do |x|
|
107
|
-
x.report "FR IO_shuten::Buffer" do
|
108
|
-
loops_files_outer.times do
|
109
|
-
IO_shuten::Buffer.purge_instances!
|
110
|
-
loops_files.times do |i|
|
111
|
-
iob = IO_shuten::Buffer.new("#{tmp_path}/wbuff-#{i}")
|
112
|
-
iob.load_from_file
|
113
|
-
iob.read
|
114
|
-
end
|
115
|
-
end
|
116
|
-
end
|
117
|
-
x.report "FR IO_shuten::Memory" do
|
118
|
-
loops_files_outer.times do
|
119
|
-
IO_shuten::Memory.purge_instances!
|
120
|
-
loops_files.times do |i|
|
121
|
-
iom = IO_shuten::Memory.new("#{tmp_path}/wmem-#{i}")
|
122
|
-
iom.load_from_file
|
123
|
-
iom.read
|
124
|
-
end
|
125
|
-
end
|
126
|
-
end
|
127
|
-
end
|
128
|
-
|
129
|
-
Dir["#{tmp_path}/**/*"].each do |f|
|
130
|
-
File.unlink f
|
131
|
-
end
|
132
|
-
|
133
|
-
puts
|
134
|
-
puts "/BENCHMARK"
|