Speed improvements are always nice, but the big improvement for us came from moving from 1x and 2x dynos to Performance dynos. CPU performance on the 1x and 2x dynos was highly inconsistent, and would suddenly become abysmal for periods of 5-10 minutes or more - and due to random routing, the backed up dyno would keep on getting requests until the requests start timing out.
A lot of time according to new relic is spent in Middleware/Rack/ActionDispatch::Routing::RouteSet#call on one of our Rails apps on Heroku. Any ideas on what might be the cause? (I'm within memory limits standard-2x)
I've stopped doing ruby dev, but boy do I not miss mutable strings. Javascript/Python's got that part right. String interning is a godsend.