コードを書きたい

コードが書きたかった

ISUCON10予選に初参加しました

はじめに

isucon.net

9月12日に行われたISUCON10予選に参加させていただきました。

チームメンバーは@kugi_masaくんと@yamakatsu1217くんと僕の3人で、チーム名はお互いの名前をとって「Mt.SpringNail」という名前で参加させていただきました。

ISUCON自体の参加は全員、これが初めてで自分は右も左もわからない状態からの参加になりました。

全員、初めての参加だったので事前に行われていたISUCON事前講義やもくもく会などのイベントに参加したり、過去問をすこし触ったりする程度の事前準備をしていました。

とりあえず今回はFailしないということを目標にしていました。

競技開始まで

競技が12:00から開始ということになったのでそれまでに過去に行われたISUCONのエントリーを眺めるなどをして自身の士気を高めていきました。

あとチームメンバーが全員起きているかどうか確認したりしていましたね。

競技開始とサーバーへの接続

競技開始時間になりポータルが502になったりしていたのですが、なんとか自分のチームのサーバーのIPアドレスを取得することができたので早速接続を試みようとしてみました。

しかし、サーバーへの接続がうまくいかず、一、二時間くらいてこずっていたと思います。

これは予選マニュアルをよく読んでおらず、configの書き方を間違っていたために接続できなかったというとても初歩的なミスでした。

ミスに気がついてくれた@yamakatsu1217くんにはとても感謝しています。

コードとにらめっこ

動作確認も終わったので実際に動いているコードを読んでみました。

といっても、今回、Go言語を利用しており、自分の使ったことのない言語を読む作業にとても苦しめられていた印象があります。

これ怪しいよね、これ遅いよね、などチームメンバーと問題点をピックアップして、その実装箇所を書き換え、デプロイしてベンチを回して点数を確認する作業を進めていきました。

実際にやったこと

必要ではなさそうな関数を実行しないようにしてみたり、DBにインデックスを貼ったり、他には使ってなさそうな引数などを消してみたりしてみました。(あとで意味がなかったことがわかった変更もありましたが…)

作業を反映させてベンチを回した際に点数が上がったときはチームメンバーの盛り上がりが凄かったです。しかし、下がった時にはなぜ下がったのか理解できなかったりして「どうすんだこれ…」状態になっていました。

参加してみて思ったこと

自分がまだまだ知識が全然ないこと、問題点となりそうな動作のピックアップがあまりできなかったこと、最適なコードを書くことができなかったことなど問題点が結構出てきたなと思いました。

そもそもISUCONでよく使われている作法などもよく理解していなかったので、そこも、より深く知りたいと思いました。

そして急に参加を呼びかけたにもかかわらずチームメンバーを集めてくれた@kugi_masaくんや、協力してくれた@yamakatsu1217くんにも感謝しています。

最終的な点数

isucon.net

こちらに出ている点数では僕らのチームは607点でした。

とりあえず点数はでていたのでよかったです。

来年に向けて

来年は今年と同じチームで出ることが難しそうなので、同じ大学の強そうな人を誘って参加してみたいと思います。

また、来年は今年の点を超えれるように頑張りたいです。

自分の持ってない知識を勉強して強くなって帰ってこれるように頑張ります。