[ragel-users] Ragel success story

Adrian Thurston thurs... at cs.queensu.ca
Tue Feb 5 00:56:27 UTC 2008


Hey Wincent,

Nice writeup! Thanks for sharing your experience.

It seems from the Rakefile that you're using the default output code
style. If speed is what you're after you should try the -G2 option :D

-Adrian

Wincent Colaiuta wrote:
> Here's a little Ragel success story.
> 
> I've written a wikitext-to-HTML translator written in C (a Ruby
> extension) and up until a few days ago it was using a lexer generated
> by ANTLR 3.0.1 (the C target). I've had a suspicion for some time,
> however, that a Ragel scanner might be faster for a number of reasons.
> 
> Imagine my surprise when I compared the speed and found that Ragel was
> nearly 10 times faster! I hadn't been expecting that kind of
> improvement.
> 
> You can look at the code here:
> 
> http://git.wincent.com/wikitext.git
> 
> And an article with the benchmark results is here:
> 
> http://wincent.com/a/about/wincent/weblog/archives/2008/02/ragel_wins_fata.php
> 
> For comparison, the current version of the ANTLR grammar at the time
> of writing is:
> 
> http://git.wincent.com/wikitext.git?a=blob;f=ext/Wikitext.g;h=642f275cd36d0a0f28c1bf8fc2f859658a0e1a81;hb=antlr
> 
> And the corresponding Ragel scanner implementation is:
> 
> http://git.wincent.com/wikitext.git?a=blob;f=ext/wikitext_ragel.rl;h=a82a304632826370041639ed0d9d9c085faeda98;hb=bd7799aa1938f36f65b2523b47f1202eac3b31bf
> 
> I've made no attempt at optimization yet, but the performance of the
> Ragel scanner is already spectacular for a "rough draft".
> 
> Ragel is a wonderful tool!
> 
> Cheers,
> Wincent
> 
> 
> > 
> 



More information about the ragel-users mailing list