【ISUCON】ISUCON8予選に参加しました

2019年2月3日

ISUCONとは

ISUCONとは以下の略である。

I:いいかんじに

S:Speed

U:Up

CON:Contest

「いいかんじにスピードアップしようコンテスト」というLINE主催のイベントです。

今回で第8回目の開催となりますが、少しずつ参加者が増え、同時に知名度も増えているようです。

 

やることはISUCONの名前の通りで、「スピードアップ!!」をします。対象はWEBアプリケーションです。

全ての参加チームには同じ設定レンタルサーバと同じWEBアプリケーションが与えられ、参加者達はそのアプリをどのような手段を使ってもいいので、早くする!!

やることはこれだけです。

 

優勝チームには賞金100万円が!! 

 

ISUCONの流れ

ISUCONに参加するためには以下のステップを踏みます。

1.参加メンバーを集める。

ある意味一緒に参加する意欲のあるメンバーを集めるのが難しいかもしれません。ISUCONは2人もしくは3人で参加登録することができます。

会社の同僚などでやる気のある人間を集めるのが吉でしょうか。私も会社の同期とともに出場しました。

 

2.公式サイトで登録する。

ISUCONにはしっかり公式ブログがあります。

http://isucon.net/

7月頃になると、こちらのブログでISUCONの募集開始するとの記事が掲載されます。

そちらで入力フォームが用意されているので、入力するだけで登録できます。

 

3.予選に出場する。

ISUCONは予選と本選があり、予選の上位30組が本選に進めるようになります。予選では特に会場が用意されていません。各自で作業場所を用意して参加します。予選も本選も開催時間は10:00~18:00までの8時間です。

時間になったらISUCONのサイトへアクセスできるようになります。IDやパスワードは事前に運営からメールで送られてくるため、そちらでアクセスして開始となります。

サイトでは自チームに与えられたサーバの情報や他のチームのスコア状況を見ることができます。

あとは時間いっぱいまで性能改善するのみです!

 

4.本選に出場する。

予選上位30組が本選にすすめるようになります。

本選は予選と違って、会場が用意され参加者はそちらで作業に取り組むことになります。

詳細はよく知らないですが、予選同様で時間いっぱい作業するのみです!

 

参加結果は?

もちろんのこと惨敗となりました。

最終スコアはfail(テスト失敗)となりました。再起動試験にて再起動ができなかったようです…

参考スコアは8000程とfailとならなくても結果は同じですね…

 

何がダメだった?

私のチームは何がダメだったのか振り返ります。

とりあえず私のチーム構成

メンバー紹介

①私

社会人経験:新卒2年目

プログラミング経験:会社に入ってから

実務上でもあまりプログラミングができていないし、当日までのISUCON対策もあまりできていませんでした。

 

②Yくん

社会人経験:新卒2年目

プログラミング経験:会社に入ってから

プログラミング経験は少なめの様子。私同様でISUCON対策もあまりできていなかったようです。(仕事が忙しいようです…)

 

③Kくん

社会人経験:2年目(転職1回)

プログラミング経験:4年くらい

我々のチームのキーマン!というより今回のISUCONは一人でやっていたと言っても過言ではない。

 

当日まで

私が当日まで何をしてたかというと…、正直何もできなかった…

参加するときに言語はGoを使うことにしたのですが、そもそもGoの使用経験がない…

Goの勉強を始めるところから始まり、仕事も忙しくそれすらもしっかりできませんでした。

当日になるまでにGoの基本文法くらいしか身に着けられませんでした。

一応それまでのISUCONで性能のボトルネックになった部分を調べたりしていました。

 

当日に

我々のチームが当日にやったことを以下に書きます。

9:30 事前に借りていた貸しスペースへ集合。各自用意。
10:00 開始。ここから性能解析ツールの導入とgithubへのソース連携を始める。(ここの作業は慎重にやりたいとのことで3人で確認しながら作業)
11:30 だいたいのセットアップが終わり、アプリの内容を確かめ始める。主に私とYくんでアプリの概要を始めました。この間Kくんは解析内容をチェック。
12:30 だいたいのアプリの内容とボトルネックが発覚したので、Kくんがソースの修正を始める。この間私とYくんはGoのソースを読んで、書き方がいけていない部分を調査。(私とYくんは最後までずっとこれをやっていた。)
15:00 ボトルネックとなっていた部分を一つ改善。スコア15000ほどにアップ。
18:00 終了!

 

というわけで性能改善が一か所しかできないという結果に…

それをやったのも結局Kくんがやったということで、私は何もできず。

 

まとめ

この記事は当時を思い出すために書いてみましたが、何も書けないですね…

私がISUCONに向けて何もやっていなかったこと、また当日に何もできなかったことが明確になってしまいました。

一緒に出場したKくんとYくんには申し訳ないことをしました。来年こそは事前準備をしてから挑みたいと思います。