8

最新バージョンのioniczipバージョン1.9.1.8を使用しています。ioniczipのプロパティを設定しました ParallelDeflateThreshold = 0。過去2か月間、zipメカニズムは完全に機能していましたが、突然これが機能しなくなりました。zipスレッドがハングし、ionic zipがtmpファイルを作成し、zipファイルを作成できませんでした。ファイルサイズが小さくても、この問題を簡単に再現できました。

この問題の私の分析は次のとおりです

問題は、最新バージョンのionic zipにありました。この場合、zipファイルの作成中にioniczipがハングしました。このdllを使用している他の数人のユーザーも、自分のサイトでそのようなエラーを報告していることに気づきました。リンクを参照してください。この問題は、ionic zipのプロパティを無効にすることで解決されParallelThresholdますが、マルチスレッドモードではなくシングルスレッドで動作するため、大きなログファイルのパフォーマンスが低下します。

プロパティをデフォルト値に設定することで問題は解決しましたParallelDeflateThresholdが、この問題の正確な原因を見つけることができませんでした。なぜ突然圧縮が失敗するのですか?マシンの変更はありませんでした。

4

1 に答える 1

18

同様の問題に直面していました。zipファイルが20〜25 MB未満の場合、3〜4秒かかりましたが、それよりも大きい場合は、無限の時間がかかりました。コードの実行が終了することはありません。

500MBまでのzipファイルを扱うので、結局DotNetZipライブラリを使用するのは間違った決定だったのではないかと心配し始めました。

zipファイルが保存される行の前に、次を追加しました。zip.ParallelDeflateThreshold = -1;

これにより、個別のスレッドが作成されないようになります。zipファイルが特定のしきい値を超えると、DotNetZipは多数のスレッドを作成し続け、最終的なzipファイルを取得する際に非常に大きな遅延が発生するように見えます。

于 2012-10-31T16:28:25.317 に答える