lwiファイルの最大数を設定できるようにする(古いlwi自動削除)
nazonoSAUNA opened this issue · comments
放っておくとそこそこの容量になるようなので
https://marshmallow-qa.com/messages/1bfa3a77-7ef0-4a9a-96c0-bcf1192b4012
use cache dirが有効の場合のみという条件は付きますが、lwi生成時に古いものを消してくれるような仕組みがあると良いなと思いました。
但し設定の最小値が1など少なすぎる設定に出来てしまうのはトラブルが増えそうなため、最小でも100くらいは必要だと思います。
最大数ではなく容量で指定するような方法も考えられますが、個数としても最小で100くらいは欲しいことに変わりはありません。
この仕組みがないと、Create Index Fileのチェックを外すことを推奨してしまう輩が現れてしまうことを危惧しています
確認いたしました。検討します。
但し設定の最小値が1など少なすぎる設定に出来てしまうのはトラブルが増えそうなため、最小でも100くらいは必要だと思います。
設定値が少なすぎる場合においてのトラブルというのは、「プロジェクト内の参照動画ファイルが設定値以上である場合、lwi削除・作成処理が不必要に多く行われてしまう」ということだと考えています。
この考えがnazonoSAUNAさんのものと一致しているのであれば、ご提案いただいた
- 最大ファイル数や最大容量を指定
- lwi生成時に、指定ファイル数以上であるかを判定し、削除
という手法ではなく
- 日数を指定
- AviUtl起動・終了(func_init, func_exit)時に、ディレクトリ内の各lwiファイルの最終アクセス日時が指定日数以上過去であるかを判定し、削除
という手法はいかがでしょうか。
この手法であれば、
メリット
- 過去のプロジェクトに使用していた動画素材のlwiファイルを削除することで、容量の削減が可能
- 現在制作中のプロジェクトのlwiファイルは削除されないため、不必要に多くの削除・生成処理が行われない
デメリット
- lwiファイルのディスク使用容量は、期間内にユーザーが使用する動画によって変動
となります。
設定値が少なすぎる場合においてのトラブルというのは、「プロジェクト内の参照動画ファイルが設定値以上である場合、lwi削除・作成処理が不必要に多く行われてしまう」ということだと考えています。`
その通りです。
日数を指定する方法は思いついていなかっただけなので、とても良いと思いました。これのメリットとして「本日、削除の判定を行った」フラグを立てることで、処理回数をさらに抑えることもできそうです。
削除のタイミングに関して起動時か終了時のどちらかになるのであれば、起動時の方が良いと思います。
プラグインの組み合わせなどの要因で終了処理が正常に行われないケースというのが多いためです
https://marshmallow-qa.com/messages/7dc7553c-4f1d-4038-bea9-92df602fafdd
ついでに初期値・最小値・最大値に関しても考える必要はあると思いますが、
個人的にこうであって欲しいくらいの意見(そこまで深く考えず)として書いておきますと、
- デフォルトでこの設定が有効
- 初期値:30日
- 最小値:2日
- 最大値:365日(それ以上はもうチェックの方を外せば良さそう)
ありがとうございます。
日数を指定する方針で実装を行いたいと思います。
終了処理が行われないケースが存在することは想定外でしたが、起動時・終了時ともに削除処理を行うことを考えていました。
ご提示いただいた設定についてもおおむね私が考えていたものと合致しています。
- デフォルトで有効
- 初期値: 30日
- 最小値: 2日
として、最大値については特に制限をせずにユーザーに任せる方針で行こうと思います。
r1110以降に「Delete old cache」設定として当該機能を追加いたしました。
ご確認ください。
「本日、削除の判定を行った」フラグを立てることで、処理回数をさらに抑えることもできそうです。
こちらの機能についても実装の目途はついていますが、内部を大々的に改修しなければならないため、もうしばらくお待ちください。
「本日、削除の判定を行った」フラグを立てることで、処理回数をさらに抑えることもできそうです。
r1118で機能追加いたしました。
ご確認ください。
ありがとうございます。異常なく動いていそうです