3 ms·
Making your ruby fly
Inspired by http://spin.atomicobject.com/2012/11/06/is-your-application-running-with-ruby-slow/
- ksec 14y agoThat is 6x improvement in speed. Why cant some of these become default?
- boundlessdreamz 14y agoIIRR Falcon patches improve 'require' speed which is significant only when you boot up. I think some variation of it will be in 2.0
- alisnic 14y agoPlease note that this difference is only in this scenario (rake routes), it largely varies in other ones. Also, a big part of falcon patch is the ruby 2.0 garbage collector, which obviously will be available in ruby 2.0.
- donw 14y ago2x improvement in my 'rake spec' runtime... not bad! If you're using rbenv, you can pass CFLAGS to it on the command line, like so: `CFLAGS='-O2' rbenv install ...`
- josephlord 14y agoBetter than 2x for me adding '-O3': time bundle exec parallel_rspec spec/ ... 778 examples, 0 failures, 28 pendings Before - OS X (2.4GHz Core Duo 2): Took 319.461302 seconds real 5m26.322s user 6m16.837s sys 0m7.062s After - OS X (2.4GHz Core Duo 2): Took 123.58472 seconds real 2m7.208s user 2m19.427s sys 0m5.414s Before - Ubuntu (1.8GHz AMD Phenom quad core) Took 247.467126561 seconds real 4m8.867s user 9m41.552s sys 0m6.188s After - Ubuntu (1.8GHz AMD Phenom quad core) Took 90.244449901 seconds real 1m32.865s user 3m41.434s sys 0m6.136s
- cheald 14y agoIs that just with the CFLAGS, or did you include the Falcon patches?
- josephlord 14y agoCFLAGS (-O3) only! Nearly factor of 3 improvement. I think I'll repost this link next week when more people are in work mode. It could save a lot of time and CPU cycles for a lot of people. It's a shame the default isn't better (not sure if it is RVM issue or the Ruby package itself or if I can configure a user/system default build config).
- cheald 14y agoWow, that's impressive. My results weren't nearly as good - maybe 5-8% or so, but I'm at ~5.4s load time on an app that takes almost 30 sec on vanilla MRI, so that's not too bad. It is indeed a shame the defaults aren't better. I wonder if there's a reason that it's not default. If not, maybe a pull request is warranted.
- hieronymusN 14y agoFor a better understanding of CFLAGs in general: http://www.gentoo.org/doc/en/gcc-optimization.xml http://www.gentoo.org/doc/en/gcc-optimization.xml
- gazd 14y agofor rvm `rvm install ruby-1.9.3-p286 --patch falcon -n falcon`
- base 14y agoAnyone knows the CFlags for EC2 instances?