Presentation for GoCon 2015 Winter
![ISUCON5 with Golang](https://cdn-ak-scissors.b.st-hatena.com/image/square/44a41bf27045f91ac5bfc96b5d48fff5009f25e4/height=288;version=1;width=512/https%3A%2F%2Ffiles.speakerdeck.com%2Fpresentations%2Fcecbdeee5d6247488156cef1587d63e7%2Fslide_0.jpg%3F5685137)
ISUCON5の予選に参加して、圧倒的な差で負けたので、 この悔しさをバネに復習して、自分の力にしたいと思う。 今回のファイトではアプリの修正が特に重要であったように思う。 そこでアプリの修正に焦点を当てて、「こうすればよかった」を追っていき、自分のものとして習得したい。 とはいえ、本番とまったく同じ状況を作ることはできないので、ローカル環境でベンチマークを走らせて、簡易に得点を見ていくことにする。 ISUCON5の予選で使われたアプリのコードとベンチマークのコード、gce用のイメージはすでに公開されているのでこちらを使う。 isucon.net なお、極力アプリの修正に集中するため、nginx.confやmy.cnfはいじらない。unicornのworker数すらいじらない。 インフラはせいぜいテーブルにインデックスを貼る程度とする。 これは、ISUCON予選本番で、やたらインフラに時間
ISUCON5の出題担当の一人、kamipoです。 今回はISUCON5の予選問題がどういう問題だったのか、振り返ってみましょう! 予選出題「ISUxi」今回の予選の出題におけるメイントピックは「N+1問題」でした。この問題にうまく対処できたかどうかが結果に大きく影響したと思います。また、ISUxiではN+1問題含め制限時間内には対処しきれないぐらい多くの問題が「/」ページに詰め込まれていたので、これらの問題への優先順位付けや着実に対処できるかも重要でした。というわけで、「/」ページのボトルネックについて解説することで本予選の振り返りとしたいと思います。 N+1「/」ページではis_friend?とget_userの大量の呼び出しがありました。これらはuser_idに紐付くデータなのでSQLでJOINすることで呼び出しを無くすことができます。もしくは、usersテーブルの内容を変更する機能
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く