Railsã§ãã使ããããã³ãã¬ã¼ãã¨ã³ã¸ã³ã¨ãã¦erb(erubi)ãhamlã slimãããã¾ããããã©ã¼ãã³ã¹ã®è¦³ç¹ã ããã¨ããããã¨ããç´5å¹´åã« ãã¼ãã§ã¯ãRuby on Railsãå¢è£æ¹è¨çã ãæ¸ããã¨ãã«ã¯ãéãå®è£ ãé¸ã¹ã°é度差ã¯ç¹ã«ãªãã¨ããèªèã§ããããããè£ä»ãããã³ããã¼ã¯ã¯ãã¡ãâã
å½æã®ãã³ããã¼ã¯çµæ
2025å¹´ã§ãçµæã¯å¤ãããªãããªï¼ã¨æãæ°ãããã³ããã¼ã¯ãåã£ã¦ã¿ãçµæã次ã®ã¨ããã§ããM1 max MBPã§ãã³ããã¼ã¯ãåã£ã¦ãã¾ãã
åæã¨ãã¦ãhamlã®v6以éãhamlitãhamlã«ãªã£ãã®ã§hamlitã¯å ¥ãã¦ãã¾ããããã¨å人çã«æ³¨ç®ãã¦ããPhlexã追å ãã¦ãã¾ãã
ruby 3.4.2 (2025-02-15 revision d2930f8e7a) +PRISM [arm64-darwin24] Warming up -------------------------------------- erubi v1.13.1 50.029k i/100ms slim v5.2.1 39.765k i/100ms haml v6.3.0 47.385k i/100ms phlex v2.1.1 12.770k i/100ms Calculating ------------------------------------- erubi v1.13.1 482.580k (± 3.0%) i/s (2.07 μs/i) - 2.451M in 5.084563s slim v5.2.1 388.980k (± 4.1%) i/s (2.57 μs/i) - 1.948M in 5.018968s haml v6.3.0 459.842k (± 2.6%) i/s (2.17 μs/i) - 2.322M in 5.052679s phlex v2.1.1 126.474k (± 1.2%) i/s (7.91 μs/i) - 638.500k in 5.049251s Comparison: erubi v1.13.1: 482580.4 i/s haml v6.3.0: 459841.9 i/s - same-ish: difference falls within error slim v5.2.1: 388980.0 i/s - 1.24x slower phlex v2.1.1: 126474.0 i/s - 3.82x slower
erubiã¨hamlãslimãããå°ãéããã¨ããçµæã«ãªãã¾ãããphlexã¯é度ã§åè² ãã¦ããããã§ã¯ãªãã¨æãã®ã§ãããªãã®ããªãã
ä»å¾æå ã§ä»»æã®ãã¼ã¸ã§ã³ã§ãã³ããã¼ã¯ã欲ãããªã£ãã¿ã¤ãã³ã°ã§ããã«ãã³ããã¼ã¯ãå®è¡ã§ããããã«ãªãã¸ããªãä½ã£ã¦ããã¾ããããããããã°ã¿ãªãããæå ã§ä½¿ã£ã¦ã¿ã¦ãã ããã