3

チームシティを介してソースコードをナゲットパッケージにパッケージ化し、オクトパス展開を介して展開するセットアップがあります。パッケージ化されたフォルダーのサイズは ~267MB です。このプロセスは、これらのファイルをパッケージ化するだけで約 5 ~ 6 分かかります。このフォルダーには、12,000 個のファイルと 339 個のフォルダーが含まれています。また、〜183MBのフォルダーがあり、297個のファイルと24個のフォルダーがあります。これには約 35 秒しかかかりません。これらのフォルダーを Nuget でパッケージ化するときに、時間に大きな違いがあるのはなぜですか? パフォーマンスを向上させるソリューションはありますか?

ありがとう

4

1 に答える 1

2

NuGet パッケージは、実際には圧縮されたアーカイブにすぎないため、得られるパフォーマンスは、ファイルの圧縮で見られる速度と非常に似ています (NuGet には、アーカイブ内の構造に関する厳密な規則があります)。

ファイルの数が異なっていても、合計サイズが同じになる - すべての一般的なアーカイブ形式は、より高速な圧縮を実現し、より少ないファイルでより良い圧縮 (より小さな結果のファイル) を実現します。

低レベルの詳細に入りたい場合、ハードディスクのデフラグを想像すると、各ファイルは連続して作成されますが、ファイルが多数ある場合は、それらがあちこちに配置されます。これにより、オーバーヘッドも追加されます。

ファイルごとの操作 (単一の大きなファイルではごくわずかな時間しかかからない可能性があります) も、多数のファイルを処理する場合に加算される可能性があります。

全体として、中断のない操作は、おしゃべりな土地ではなく、分厚い土地でより効率的であるというのは、ソフトウェア開発におけるほとんどの真実です。

于 2015-11-24T20:43:30.887 に答える