Expresiones regulares TruffleRuby: 200 veces más rápidas que C y SIMD

2025-03-18
Expresiones regulares TruffleRuby: 200 veces más rápidas que C y SIMD

Esta publicación de blog explora la optimización del rendimiento para el escape de cadenas JSON en Ruby. Las pruebas comparativas comparan tres enfoques: una versión pura en Ruby, una extensión C con instrucciones SIMD y una versión pura en Ruby en TruffleRuby. Sorprendentemente, la versión pura en Ruby de TruffleRuby, aprovechando su compilador JIT avanzado y el motor TRegex, es 20 veces más rápida que la extensión C y SIMD, e incluso más de 200 veces más rápida que el código C de referencia en algunos casos. Esto se debe al motor TRegex de TruffleRuby, que compila las expresiones regulares en autómatas finitos deterministas, evitando el retroceso y utilizando instrucciones SIMD para la optimización. Se muestran comparaciones similares para `Time.new(String)` y `StringScanner#scan_integer`, donde las implementaciones de expresiones regulares de TruffleRuby superan significativamente las implementaciones C de CRuby. Esto demuestra que, en algunos casos, un código conciso en Ruby puro, combinado con un compilador JIT avanzado, puede superar el rendimiento de los lenguajes de bajo nivel.

Leer más