この記事は
英語アドベントカレンダーの1日目の記事です。
(作ったのに存在忘れてましたすいません)
この記事はこんな人におすすめ
- ゆるく英語勉強始めたい
- 今全然英語できないけどいつかはやらなきゃいけないと思ってる
なぜおすすめか?私がちょうど一年前こんな感じだったからです。
続きを読む英語アドベントカレンダーの1日目の記事です。
(作ったのに存在忘れてましたすいません)
なぜおすすめか?私がちょうど一年前こんな感じだったからです。
続きを読む今年は前職の先輩と現職の先輩と組んで参加しました。
予選突破の20万台には遠く及ばず…
点数のブレが大きすぎてどの対策が効いたか全然わからなかったけど時系列でやったこととかやりたかったけど諦めたことをメモる。
私の担当はアプリケーションだった。
(user.name)
(message.id, message.channel_id)
(haveread.user_id, haveread.channel_id)
SELECT *
の撲滅get_channel_list_info
の置き換え
COUNT(*)
をCOUNT(1)
にCOUNT
せずにSELECT
するだけでよくなったxdebug.so
, お前のことやでN+1
をいくつか潰す他のお二人には
とか諸々やってもらった。感謝…
/register
, /login
ページを静的コンテンツに
select * from user
してるのとかLIMIT
, OFFSET
殺す他にも色々アイディアはあって
なんて案もあったけどとにもかくにもボトルネックが/icons
から他に移らなくて死んだ。
とにもかくにも/icons
のリクエストを捌けて無くてしんどかった。
一番最初はDBが完全にサチっててその壁は一瞬で越えられたけどその後すぐに画像が死んでることが分かってなるほどという感じだった。
画像の脱DB化をしてもそこまでスループットが上がらず、なかなか苦しかった。
今回はそこを抜けたチームが10万の壁を越えていったのではという推測。
スギャブロエックスチームと同じ会場で解いてたので効いたところCache-Control
ヘッダあたりをいじって2回目以降リクエストさせないようにしてたらしい。ぐぬぬ…
一昨年、昨年参加して今年3回目だけど計測してボトルネック特定して確実に芽をつぶしていく力はついていると感じてて、それゆえに結構悔しい。
あとはぱっと直したコードにバグがあることが多くて結構時間を取られた。
今回はほぼ何も準備できなかったけど来年は手元で簡単にアプリが動かせるような環境を作る秘伝のタレを用意してそこでデバッグしたい。
来年こそ100万円使って温泉行きたいです。
次は東京Node学園2017に登壇する予定です。
JavaScript系で大きなカンファレンスは初めてなので頑張るぞ〜〜〜