見出し画像

TWSNMP FC:ポーリングを削除する速度を14倍にした!

昨日は早起きして開発したので、そこそこ進みました。日中はとても眠かったです。なので昨日の夜は早く寝ました。
今朝は4時にスッキリ起きてv1.6.0リリースのための最後の仕上げです。
パネルやホストリソースの画面からポーリングを追加する機能の開発中にいくつか問題を見つけたので、その対策をしました。
1つ目は、ポーリングの削除が妙に遅い問題です。
ソースコードを見てみるとポーリングを削除した時に関連するポーリングのログを削除するのですが、この処理は記録している全てのポーリングログを検索しながら削除する処理になっていました。

のようにまとめてポーリングを削除すると、選択したポーリングの回数だけ、全てのポーリングログを検索して対象のポーリングと一致するログだけを削除するような処理でした。そのため、

ポーリングの削除の14秒もかかる

のように時間がかかっていました。14秒も待つと一瞬、ブラウザーが固まったかと思ってしまいます。
処理を見直して、全てのポーリングのログを検索は1回だけに改善しました。さらにログの削除の完了を待たずに画面を更新するようにしました。この結果、

画面の更新は1秒以下、削除完了まででも2秒以下

この改善は、

です。これはかなり達成感があって、うれしいです。

もう一つの改善はノード単位のポーリング画面にフィルターと表示状態の保存機能をつけることです。全てのポーリングを表示する画面には、これらの機能がありましたがノード単位の画面にはありませんでした。
パネルやホストリソースの画面からポーリングを追加できるようにすると、ノード単位のポーリング画面に戻った時に、ソート順やフィルターが変わっていることが、ちょっとストレスになったので改善しました。

です。表示状態の保存場所は全てのポーリング一覧と共通ですが、いまのところ支障はないので、そのままにしておきます。

v1.6.0で修正したいことは一通り完成したので、この週末にリリースしようと思います。
noteの新しいエディターは快適です。

明日に続く


開発のための諸経費(機材、Appleの開発者、サーバー運用)に利用します。 ソフトウェアのマニュアルをnoteの記事で提供しています。 サポートによりnoteの運営にも貢献できるのでよろしくお願います。