+14
README.md
+14
README.md
···
2
3
There seems to be some kind of performance regression in Ruby 4.0 which showed up in my project, which I think is centered around regexp matching. I extracted some minimal code from the project, which runs significantly slower on Ruby 4.0 than on 3.4.
4
5
Running on my server, with 1000 loops:
6
7
```
···
23
$ RUBYOPT="--enable-yjit" ruby test.rb 1000
24
1000 * 940 = 940000 records in 13.457106019 -> 69851.57125706079 records/s
25
```
···
2
3
There seems to be some kind of performance regression in Ruby 4.0 which showed up in my project, which I think is centered around regexp matching. I extracted some minimal code from the project, which runs significantly slower on Ruby 4.0 than on 3.4.
4
5
+
#### First version (commit 20923f0028e2c023bd5e48be5118c5f97f4f243a)
6
+
7
Running on my server, with 1000 loops:
8
9
```
···
25
$ RUBYOPT="--enable-yjit" ruby test.rb 1000
26
1000 * 940 = 940000 records in 13.457106019 -> 69851.57125706079 records/s
27
```
28
+
29
+
#### Minimal version (commit ccc62810ac635f3250bebe12a08d79ad5d9dd7f5)
30
+
31
+
With 2,000,000 loops:
32
+
33
+
```
34
+
$ /tmp/ruby34/bin/ruby test.rb 2000000 0
35
+
2000000 loops in 0.752061 -> 2659358.748824896 loops/s
36
+
37
+
$ /tmp/ruby4/bin/ruby test.rb 2000000 0
38
+
2000000 loops in 2.711216 -> 737676.3784220808 loops/s
39
+
```