3/5-6の二日間にかけて Web Speed Hackathon 2022 for Students に参加しました。Web Speed HackathonというのはWebサイトのパフォーマンスをチューニングするコンテストです。学生限定なので参加者は40人とかだった。
www.cyberagent.co.jp https://github.com/CyberAgentHack/web-speed-hackathon-2022
準備
Herokeでデプロイ
まずリポジトリをforkする。なんも分からんのでREADME.mdにある通り取り敢えずHerokeでデプロイすることにする。下の記事を参考にした。 qiita.com ちなみに自動デプロイしようとしたけどなんか反映されなかったので手動デプロイでやっていた。URLが取得できたらlearderboardのissueから参加登録する。 初回計測がこれなんですけどなぜか高く出てしまって最後まで超えられませんでした(泣)。
手元で実行
リポジトリをcloneする。yarn install
しようとしたら問題発生。
PS C:\Programming\web-speed-hackathon-2022> yarn install yarn : このシステムではスクリプトの実行が無効になっているため、ファイルC:\Users\user\AppData\Roaming\npm\yarn.ps1 を読み込むことができません。詳細については、「about_Execution_Policies 」(https://go.microsoft.com/fwlink/?LinkID=135170) を参照してください。 発生場所 行:1 文字:1 + yarn add react-image + ~~~~ + CategoryInfo : セキュリティ エラー: (: ) []、PS SecurityE xception + FullyQualifiedErrorId : UnauthorizedAccess
qiita.com
実行ポリシーがそのままだった。forkしたリポジトリだとこうなるぽい?Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope Process
したらできた。
ところがlocal hostにアクセスしたらUncaught ReferenceError: exports is not defined
と出てしまいページが表示されない。Slackで別の学生が同じ報告をしていた。Windowsに起因する問題だったらしく、新しくpushされたもので実行できたら表示された。やっと競技開始です。
競技
コードを読んで取り敢えずReactが使われてることだけは分かった。
Reactコンポーネントを関数コンポーネントの外に置く
トップページ開いたらThe component styled.button with --- has been created dynamically.
がたくさん出てきたので、定義を関数コンポーネントの外に置きました。改善にはなるけどスコアには大きく影響しないそうです。
画像の読み込みを何とかする
TrimmedImage
の読み込みが遅かったので色々やろうとしたんですが上手くいきませんでした。サブピクセルレンダリングという言葉を覚えて整数座標にしたりしてた。
HTML5 canvas のパフォーマンスを向上させる - HTML5 Rocks
それ以外
以下の記事を読んで試行錯誤したのですが、結局何もできませんでした。知識が浅いな~。
結果
次あったらもっと良い結果を出せるように頑張りたい。 traPの先輩が上位に入っていて凄いなあと思った。
3月5, 6日の二日間で開催された Web Speed Hackathon 2022 for Students にて、本サークルに所属するtoshi00、trastaがそれぞれ2位, 3位の成績を収めました。おめでとうございます🎉🎉https://t.co/2d52QTUEf9
— 東工大デジタル創作同好会traP (@traPtitech) 2022年3月6日