2015-09-14 64 views
1

我有一個設置,我們可以通過Team City將源代碼打包成nuget包,通過Octopus部署來部署。打包的文件夾大小爲〜267MB。這個過程大約需要5-6分鐘來打包這些文件。該文件夾包含12,000個文件和339個文件夾。我也有一個〜183MB的文件夾,並有297個文件和24個文件夾。這隻需要約35秒。任何想法爲什麼在用Nuget打包這些文件夾時存在這麼大的差異?有沒有解決方案來幫助提高性能?Nuget Pack性能下降

感謝

+0

基本上對較大數量的較小文件的操作比對面慢。只需比較複製一個目錄和另一個。 – Kamo

回答

1

的NuGet包真的只是壓縮歸檔引擎蓋下,所以你會得到表現會非常相似,你看壓縮文件的速度(的NuGet只是對結構的嚴格約定在檔案中)。

給定不同數量的文件,總計達到相同的總大小 - 所有常用歸檔格式實現了更快的壓縮率,並且壓縮得更好(生成的文件更小),文件更少。

如果您想進入底層細節,如果您想像對您的硬盤進行磁盤碎片整理,每個文件都將被連接在一起,但是如果您有大量文件,它們將會遍佈整個地方。這也增加了開銷。

任何每個文件操作(在一個大文件上可能只花費很少的時間)可能會在您處理多個文件時累加起來。總而言之,軟件開發中的一個真正主題是,不間斷操作在塊狀地而不是閒聊地方更有效率。