我有一个设置,我们通过 Team City 将源代码打包到 nuget 包中,然后通过 Octopus deploy 进行部署。打包的文件夹大小约为 267MB。仅打包这些文件,此过程大约需要 5-6 分钟。该文件夹包含 12,000 个文件和 339 个文件夹。我还有一个~183MB 的文件夹,里面有 297 个文件和 24 个文件夹。这只需要大约 35 秒。知道为什么用 Nuget 打包这些文件夹时会有如此大的时间差异吗?有什么解决方案可以帮助提高性能吗?
谢谢
我有一个设置,我们通过 Team City 将源代码打包到 nuget 包中,然后通过 Octopus deploy 进行部署。打包的文件夹大小约为 267MB。仅打包这些文件,此过程大约需要 5-6 分钟。该文件夹包含 12,000 个文件和 339 个文件夹。我还有一个~183MB 的文件夹,里面有 297 个文件和 24 个文件夹。这只需要大约 35 秒。知道为什么用 Nuget 打包这些文件夹时会有如此大的时间差异吗?有什么解决方案可以帮助提高性能吗?
谢谢
NuGet 包实际上只是引擎盖下的压缩档案,因此您获得的性能将与您看到的压缩文件的速度非常相似(NuGet 只是对档案内的结构有严格的约定)。
给定不同数量的文件,加起来总大小相同 - 所有常见的归档格式都可以实现更快的压缩,并以更少的文件实现更好的压缩(生成的文件更小)。
如果你想深入了解底层的细节,如果你想对硬盘进行碎片整理,每个文件都会是连续的,但如果你有很多文件,它们就会到处都是。这也增加了开销。
一旦您处理许多文件,任何每个文件的操作(在单个大文件上可能只花费一小部分时间)也可能加起来。
总而言之,在软件开发中,不间断的操作在大块土地上更有效,而不是在喧闹的土地上,这几乎是一个真实的主义。