Test for Ruby 4.0 performance regression

test only on one post and one regexp

Changed files
+4 -12
+4 -12
test.rb
··· 1 require 'json' 2 3 - REGEXPS = [ 4 - /linux/i, /debian/i, /ubuntu/i, /\bredhat\b/i, /\bRHEL\b/, /\bSUSE\b/, /\bCentOS\b/, /\bopensuse\b/i, 5 - /\bslackware\b/i, /\bKDE\b/, /\bGTK\d?\b/, /#GNOME\b/, /\bGNOME\s?\d+/, /\bkde plasma\b/i, 6 - /apt\-get/, /\bflatpak\b/i, /\b[Xx]org\b/ 7 - ] 8 9 - posts = JSON.load(File.read(File.join(__dir__, 'atprotocoldev.json'))) 10 loops = ARGV[0].to_i 11 12 if loops <= 0 ··· 17 time_start = Time.now 18 19 loops.times do 20 - posts.each do |text| 21 - match = REGEXPS.any? { |r| text =~ r } 22 - end 23 end 24 25 time_end = Time.now 26 - 27 - total = loops * posts.length 28 total_time = time_end - time_start 29 30 - puts "#{loops} * #{posts.length} = #{total} records in #{total_time} -> #{total / total_time} records/s"
··· 1 require 'json' 2 3 + regexp = /\bslackware\b/i 4 + test_post = "This isn’t a very long string – but it includes some non-ASCII™ characters…" 5 6 loops = ARGV[0].to_i 7 8 if loops <= 0 ··· 13 time_start = Time.now 14 15 loops.times do 16 + test_post =~ regexp 17 end 18 19 time_end = Time.now 20 total_time = time_end - time_start 21 22 + puts "#{loops} loops in #{total_time} -> #{loops / total_time} loops/s"