Something interesting: Even in version 2.7 with JIT enabled, Ruby still can't do constant folding (turning 2*3 into 6 so it doesn't run every time). Apparently the reason is that because almost anything can be redefined, even for something like 2*3 it has to look up the right definition each time. So a lot slower than you'd like.
(Also ruby 1.8's optimization is much worse than 2.7, even without JIT.)
For Essentials, there is at least one thing I'm aware of that's kinda-sorta reeaally bad: tiles are sometimes rendered as separate sprites, individually. ~300 tiles are on screen