Isucon – Web application tuning hackathon – was held on 2011-08-28. Isucon is “Iikanjini Speed Up Contest”.
livedoor Techブログ : なんでもありのWebアプリケーション高速化バトル、#isucon 開催のお知らせ
livedoor Techブログ : 自家製 #isucon のつくりかた
Not means “Flying chair” nor “Throw chair”. Of course Not fujiwara nor kazeburo!
via 一定時間ログを吐かないとイスが飛ぶ Log::Minimal::FlyingChair というモジュールを作りました – (ひ)メモ
Contest theme is like weblog application. Sample implementations are written by Perl, Ruby and Node.js.
Implements are mostly clean and clear, but host team hides some traps. If you think “apache sucks, nginx is cool.”, and use default configuration, you run into trap yourself. Then benchmark score down suddenly! “WHYYYYY!!” It’s a fun!
All team use perl application, so I read official article and set default configuration. But my primary language is Ruby, I start at Ruby implements.
You prepare RVM. Google it.
$ gem install bundler
$ cd webapp/ruby
Below few lines are old description. My pull req was merged. yeah!(Edited in 2011-09-18 6:58)
And you should edit Gemfile. This diff is my poor environment and wrong information cause. Sorry 🙂
diff –git a/webapp/ruby/Gemfile b/webapp/ruby/Gemfile
index 58e119e..ec065e8 100644
@@ -3,3 +3,4 @@ gem ‘sinatra’
$ bundle install –path vendor/bundle
$ bundle exec rackup -s thin -p 5000 -E production
You try to access => http://localhost:5000/
That’s your isucon application!
My initial Benchmark score => https://gist.github.com/1187953
Sample implements by Perl and Ruby. Absolute score is poor – it’s my macbookair ;( , But importance is degree. Also to compare. Have a good tuning!
homebrew: alternative macports
perlbrew, pythonbrew, rvm, nvm: language and enviroment installer, separator
pip: alternative easy_install
cpanm: alternative cpan installer