…on runtime information in JRuby. You may know that JRuby has always had a JIT (just-in-time compiler), which lazily compiled Ruby AST into JVM bytecode. What you may not know is that unlike most other JIT-based systems, we did not gather any information at runtime that might help the eventual compilation produces a better result. All we applied were the same static optimizations we could safely do for AOT compilation (ahead-of-time, like jrubyc), and ultimately the JIT mode just …
DevOps @ InterOP Las Vegas - Jesse Robbins - Opscode
View more presentations from Jesse Robbins .
I realized that I hadn't posted my presentation on DevOps from Interop Las Vegas .
This talk combined elements from John Allspaw's excellent 10 Deploys Per Day talk given at Velocity and lessons from the Theory of Constraints, Lean / JIT , Six Sigma, Toyota Production System, Kanban, Agile, etc. …
JIT compilation (a la JRuby) for über-performance
It doesn't work on Windows (yet)
The How: Getting Rubinius 1.0 Running
Sorry to sound like a broken record but.. the best way to get Rubinius 1.0 running is to use Wayne E Seguin's RVM ( Ruby Version Manager)! RVM has already been updated to support Rubinius 1.0, so it's very easy to get up and running if you're on OS X or Linux (though you need to make sure you get HEAD first): # rvm update --head …
…Rails 3 focused fixes, performance improvements for Ruby-to-Java calls, and JIT compilation caching.
Ruby There: Ruby Events Listings
Ruby There is a new Ruby and Rails events listing site from Scottish Rubyist, Keavy McMinn. You can already submit events of your own or just check out what's coming up. We'll do a full post about it soon once Ruby There's listings have been integrated with Ruby Inside, as we plan to show Ruby event listings on all …
…Andrew goes on to explain there are further optimizations possible for Sphinx such as JIT compilation and expression optimization which he claims can increase the lead even further
Andrew is kind enough to provide explanations and benchmark results though this is far from the first notion of this problem I hear about. Many other companies looking to optimize MySQL problem, especially in analytics space when expressions should be computed over hundreds of millions of rows have expressed …
…it's also a beast when it comes to performance. Via techniques such as Just-in-Time ( JIT) and ahead-of-time compilation, MacRuby applications can achieve performance comparable to native applications. Ahead-of-time compilation in particular is useful if you would like to keep your delicious mac recipes private to a larger extend.
In order to achieve all this goodness, MacRuby employs one of the most sophisticated compiler infrastructures at this moment in the form of LLVM . …
…reaches some predetermined value (controlled via -Xjit.call_til_compile ), the first stage of the JIT kicks in.
Method Chooser
Now that a call counter has reached the proper level, the JIT is ready to kick in. The JIT could simply take the method whose counter has hit the level, but instead it starts the search. It's looking for a good method to JIT, which it finds by looking up the call stack.
The reason it does this is because the JIT has the ability to inline methods into …
Delay or disable JRuby's JIT
An interesting side effect of JRuby's JIT is that it sometimes actually slows execution for really short runs. The compiler isn't free, obviously, nor is the cost of loading, verifying, and linking the resulting JVM bytecode. If you have a very short command that touches a lot of code, you might want to try disabling or delaying the JIT.
Disabling is easy: pass the -X-C flag or set the jruby.compile.mode property to "OFF": ~/projects/jruby …
GemStone team made a splash with MagLev at RailsConf '08 where they attracted a fair dose of attention from the attendees. Based on an existing GemStone/Smalltalk VM, it promised a lot of inherent advantages: 64-bit, JIT, years of VM optimizations, and built-in persistence and distribution layers. Since then the team has been making steady progress, which recently resulted in the announcement of the first public alpha . In fact, the project appears to be …
…alive and healthy . The VM has been rewritten in C++, a JIT compiler has been added, and you can now run mongrel, thin, rack, amqp, and a number of other gems all unmodified. The roadmap shows 1.0RC in the works, and a focus on enabling real-world application deployments (packaging, distribution, etc).
It is too early to talk about performance, but the combination of the JIT and LLVM infrastructure means that Rubinius will have true concurrency (no GIL), and …