Tatsu still writes something... Fourth season

これからも私はなにかをしてなにかを書く

もう少しだけあがいてみる(MulSync Version 2.0.1)

道はまだ遠い

MulSync作り始めたのは2011年(東日本大震災後の混乱の中ノートPCで開発なんてこともやってました)。C#というか.NETの標準規約も知らず、JavaもどきのコードとWindows Formsの描画とロジックべったり、C#のおいしい機能は全然使わず、当時の配布環境的に有利だった.NET Framework 3.5で作るところから始まって、ここまでやってきた。

その間にベクターで紹介されたりしてもはや馬鹿にできないところに来ている上、売れ残りジャンクPC NASやポータブルHDDとのデータ同期でMulSyncはいまでもちょくちょく使っている。

そうして、初版から11年、きしみが今となって出ている。

  • 書き方が悪いのかWindows Forms+.NET Framework 3.5の範囲で作っているので高DPIにうまく対応できていない
  • .NET Framework 3.5の範囲で作っているのでC#のおいしい機能が使えず、パフォーマンスやメンテナンス性に難がある
  • Windowsのデスクトッププログラム製作用フレームワークがMVVMを指向した物ばかりとなり、新しいWindowsについて行くには画面べったりでは対応できない

といったところである。

のでここのところ向学を兼ねて大改修を行っている。今は、どのような方向に進んでもよいように描画とロジックを引き剥がしている最中である。道はまだ遠い。

とはいえ使っているのは今である

とはいえ、MulSyncを使うのは今であり、少しでも速く動くに越したことはない。

ということで速くなる手はないかと思って見てみた。同期対象ファイルの情報をリストに入れる速度に関係する画面更新時の描画停止はすでにやっていた。

他に遅いところをなんとかする手はないかと見てみたら次の点が見つかった。

  • リストビューに入れるには配列から入れた方が速いという計測結果があった
  • ファイルが増えると遅くなる同期動作を変えるとき、いちいち操作内容の数を書き換えていた

ということで保守用に大改修中のGit管理のソースツリーとは別にとっておいた従来のSubversion管理ソースツリーにあるプログラムに手を加えてほんの少しでも早くできればということで上記の2点に焦点を当てて作ったのが今回のMulSync Version 2.0.1である。

小改良で済んだので開発中から使っていたが、それなりの効果が出ていたので公開したという次第である。

さて、夜が明けたら再び改修を進めていこう。