File tree Expand file tree Collapse file tree 4 files changed +25
-27
lines changed
lib/redis_client/ruby_connection Expand file tree Collapse file tree 4 files changed +25
-27
lines changed Original file line number Diff line number Diff line change @@ -7,53 +7,53 @@ redis-server: `Redis server v=7.0.12 sha=00000000:0 malloc=libc bits=64 build=a1
7
7
8
8
```
9
9
ruby 3.3.0 (2023-12-25 revision 5124f9ac75) [arm64-darwin23]
10
- hiredis: 5346.6 i/s
11
- ruby: 2984.3 i/s - 1.79x slower
10
+ hiredis: 5369.2 i/s
11
+ ruby: 3095.8 i/s - 1.73x slower
12
12
13
13
```
14
14
15
15
### large string x 100
16
16
17
17
```
18
18
ruby 3.3.0 (2023-12-25 revision 5124f9ac75) [arm64-darwin23]
19
- hiredis: 304.2 i/s
20
- ruby: 204.1 i/s - 1.49x slower
19
+ hiredis: 303.9 i/s
20
+ ruby: 217.9 i/s - 1.39x slower
21
21
22
22
```
23
23
24
24
### small list x 100
25
25
26
26
```
27
27
ruby 3.3.0 (2023-12-25 revision 5124f9ac75) [arm64-darwin23]
28
- hiredis: 2612 .0 i/s
29
- ruby: 1240.8 i/s - 2.11x slower
28
+ hiredis: 2706 .0 i/s
29
+ ruby: 1325.4 i/s - 2.04x slower
30
30
31
31
```
32
32
33
33
### large list
34
34
35
35
```
36
36
ruby 3.3.0 (2023-12-25 revision 5124f9ac75) [arm64-darwin23]
37
- hiredis: 6772.7 i/s
38
- ruby: 1540.7 i/s - 4.40x slower
37
+ hiredis: 6827.5 i/s
38
+ ruby: 1755.0 i/s - 3.89x slower
39
39
40
40
```
41
41
42
42
### small hash x 100
43
43
44
44
```
45
45
ruby 3.3.0 (2023-12-25 revision 5124f9ac75) [arm64-darwin23]
46
- hiredis: 3293 .2 i/s
47
- ruby: 1234.0 i/s - 2.67x slower
46
+ hiredis: 3453 .2 i/s
47
+ ruby: 1359.5 i/s - 2.54x slower
48
48
49
49
```
50
50
51
51
### large hash
52
52
53
53
```
54
54
ruby 3.3.0 (2023-12-25 revision 5124f9ac75) [arm64-darwin23]
55
- hiredis: 1421.7 i/s
56
- ruby: 1481.0 i/s - same-ish: difference falls within error
55
+ hiredis: 1655.5 i/s
56
+ ruby: 1666.5 i/s - same-ish: difference falls within error
57
57
58
58
```
59
59
Original file line number Diff line number Diff line change @@ -7,53 +7,53 @@ redis-server: `Redis server v=7.0.12 sha=00000000:0 malloc=libc bits=64 build=a1
7
7
8
8
```
9
9
ruby 3.3.0 (2023-12-25 revision 5124f9ac75) +YJIT [arm64-darwin23]
10
- hiredis: 6723.1 i/s
11
- ruby: 5507.5 i/s - 1.22x slower
10
+ hiredis: 6795.5 i/s
11
+ ruby: 5696.7 i/s - 1.19x slower
12
12
13
13
```
14
14
15
15
### large string x 100
16
16
17
17
```
18
18
ruby 3.3.0 (2023-12-25 revision 5124f9ac75) +YJIT [arm64-darwin23]
19
- hiredis: 290.8 i/s
20
- ruby: 335.2 i/s - same-ish: difference falls within error
19
+ hiredis: 291.0 i/s
20
+ ruby: 339.3 i/s - same-ish: difference falls within error
21
21
22
22
```
23
23
24
24
### small list x 100
25
25
26
26
```
27
27
ruby 3.3.0 (2023-12-25 revision 5124f9ac75) +YJIT [arm64-darwin23]
28
- hiredis: 3686.7 i/s
29
- ruby: 2437.1 i/s - 1.51x slower
28
+ hiredis: 3661.1 i/s
29
+ ruby: 2351.8 i/s - 1.56x slower
30
30
31
31
```
32
32
33
33
### large list
34
34
35
35
```
36
36
ruby 3.3.0 (2023-12-25 revision 5124f9ac75) +YJIT [arm64-darwin23]
37
- hiredis: 6725.9 i/s
38
- ruby: 4990.0 i/s - 1.35x slower
37
+ hiredis: 6839.3 i/s
38
+ ruby: 5330.8 i/s - 1.28x slower
39
39
40
40
```
41
41
42
42
### small hash x 100
43
43
44
44
```
45
45
ruby 3.3.0 (2023-12-25 revision 5124f9ac75) +YJIT [arm64-darwin23]
46
- hiredis: 3893.0 i/s
47
- ruby: 2994.7 i/s - 1.30x slower
46
+ hiredis: 3966.9 i/s
47
+ ruby: 3243.4 i/s - 1.22x slower
48
48
49
49
```
50
50
51
51
### large hash
52
52
53
53
```
54
54
ruby 3.3.0 (2023-12-25 revision 5124f9ac75) +YJIT [arm64-darwin23]
55
- hiredis: 4303.3 i/s
56
- ruby: 4244.6 i/s - same-ish: difference falls within error
55
+ hiredis: 4609.7 i/s
56
+ ruby: 4612.8 i/s - same-ish: difference falls within error
57
57
58
58
```
59
59
Original file line number Diff line number Diff line change @@ -12,7 +12,7 @@ class BufferedIO
12
12
13
13
def initialize ( io , read_timeout :, write_timeout :, chunk_size : 4096 )
14
14
@io = io
15
- @buffer = "" . b
15
+ @buffer = "" . dup . force_encoding ( Encoding . default_external )
16
16
@offset = 0
17
17
@chunk_size = chunk_size
18
18
@read_timeout = read_timeout
Original file line number Diff line number Diff line change @@ -144,7 +144,6 @@ def parse(io)
144
144
145
145
def parse_string ( io )
146
146
str = io . gets_chomp
147
- str . force_encoding ( Encoding . default_external )
148
147
str . force_encoding ( Encoding ::BINARY ) unless str . valid_encoding?
149
148
str . freeze
150
149
end
@@ -221,7 +220,6 @@ def parse_blob(io)
221
220
return if bytesize < 0 # RESP2 nil type
222
221
223
222
str = io . read_chomp ( bytesize )
224
- str . force_encoding ( Encoding . default_external )
225
223
str . force_encoding ( Encoding ::BINARY ) unless str . valid_encoding?
226
224
str
227
225
end
You can’t perform that action at this time.
0 commit comments