Actions
Bug #21856
openMassive performance degradation of `rb_obj_free` for `T_CLASS` since Ruby 4.0
Bug #21856:
Massive performance degradation of `rb_obj_free` for `T_CLASS` since Ruby 4.0
Status:
Open
Assignee:
-
Target version:
-
ruby -v:
ruby 4.1.0dev (2026-01-31T09:41:30Z master 7ef8c470d2) +PRISM [x86_64-linux]
Description
Loofah sanitization is noticeably slower
Ruby: 3.4.8
Loofah: 2.25.0
Nokogiri: 1.19.0
Iterations: 100000
user system total real
Loofah.fragment + scrub!(:prune) 26.091872 0.000000 26.091872 ( 25.110925)
Loofah.scrub_fragment(:prune) 25.913185 0.010392 25.923577 ( 24.948464)
Nokogiri HTML parse only 3.852690 0.000000 3.852690 ( 3.705930)
Ruby: 4.0.0 & 4.0.1
Loofah: 2.25.0
Nokogiri: 1.19.0
Iterations: 100000
user system total real
Loofah.fragment + scrub!(:prune) 38.094207 0.041753 38.135960 ( 36.669463)
Loofah.scrub_fragment(:prune) 40.168795 0.000045 40.168840 ( 38.561806)
Nokogiri HTML parse only 4.012936 0.052024 4.064960 ( 3.913272)
Ruby: 4.1.0 (ruby 4.1.0dev (2026-01-31T09:41:30Z master 7ef8c470d2) +PRISM [x86_64-linux])
Loofah: 2.25.0
Nokogiri: 1.19.0
Iterations: 100000
user system total real
Loofah.fragment + scrub!(:prune) 39.004228 0.000000 39.004228 ( 37.694873)
Loofah.scrub_fragment(:prune) 39.043199 0.031284 39.074483 ( 37.182785)
Nokogiri HTML parse only 3.889100 0.010427 3.899527 ( 3.741622)
Originally reported https://www.redmine.org/issues/43737
Files
Actions