😊

速度改善で気をつける点

2021/12/17に公開

パーソンリンク アドベントカレンダー17日目です!🎉
今回は速度改善をする際に気を付ける点を書いていきます。

どこが原因なのか

速度改善をする該当箇所について自分は今までここが時間がかかってそうという、確証もない考えで修正箇所を検討していましたが、それでは無駄な時間がかかることを学びました。
そこでまずは修正する部分でどこが原因となっているのかを知る必要性が出てきます。
ベンチマークを取るのが一番いいのかなと思っています。
そこで処理速度を落としている該当箇所を知ることが出来ます。

原因箇所の特定後

原因箇所を特定した後は実装の大枠を練ます。
どんな処理に変更するのかある程度考えながらコードをいじっていきます。
そして大枠が完成したら、実際に動かしてみて動くか確認します。

確認後

確認が取れたら実際に実装します。

速度の改善はされているのか

ここからが肝です。
大体速度調査はバックエンドの処理なのでcurlでAPIを叩きます。
そこで-w "time_total:%{time_total}"というオプションをつけることでレスポンスまでの速度を図ることが出来ます。
後はインフラ環境が整っていればログのレイテンシでも確認可能です。
様々な方法がありますが、速度が改善されていればOKとなります(大体1秒以内を目安としています)

既存との差異はないか

ここも大切になってきます。
改修を加えた部分と加える前の状態の差異がないことを確認します。
既存コードとの差異があるとリリースした際のエラーの元になるので既存との差異がないかは結果をjson形式でファイル出力してdiffコマンドを使って調べていきます。

diff 既存の結果 修正結果

上記のイメージです。

他コードへの影響はないのか

コードをいじるわけですから、もしかしたら他コードにも影響を及ぼしている可能性があります。
モデルをいじった際に他の部分で同じモデルを使用していた場合影響があると思いますので、実装時にはそのようなことを気をつけて実装し、確認していきます。

最後に

大体この辺りを気にして作業を進めていきます。
既存コードの修正なので、全てわかりきっていないファイルもあるので、そのような部分には注意を払って作業を行なっています。

Discussion