LOGO OA教程 ERP教程 模切知识交流 PMS教程 CRM教程 开发文档 其他文档  
 
网站管理员

如何在C#中优化或限制zip进程(DotNetZip)的CPU使用率?

admin
2024年1月19日 21:53 本文热度 543

:如何在C#中优化或限制zip进程(DotNetZip)的CPU使用率?

我有一个应用程序,用于使用DotNetZip库来存档文件夹。 我注意到,在进行实际的"压缩"过程时,它会占用100%的CPU。 该应用程序将与另一个(TCP聊天应用程序)结合使用,因此我真的需要此应用程序,以使其使用的CPU尽可能少。

有什么办法可以安全地限制CPU? 我尝试降低优先级,但没有任何区别。 我现在唯一拥有的就是将亲和力仅设置为1个核心,以使其使用50%。 但是,当然,这仅适用于多核计算机。

 

默认情况下,DotNetZip将在多个线程上运行,以提供更快的压缩速度,但会占用CPU和内存利用率。在足够多的I / O吞吐量下,在多核系统上,这可能会消耗所有CPU的100%。

如果不希望这样,可以将ZipFile.ParallelDeflateThreshold设置为-1。这表示"切勿使用多个线程进行压缩"。这仍然会消耗单个线程可以获取的所有cpu。在单核,单CPU的计算机上,该比例仍为100%。典型的当前笔记本电脑是双核计算机。在这种情况下,它将显示50%的CPU使用率,因为一个内核将完全饱和。

using (ZipFile zip = new ZipFile(tmpRarFileName, Encoding.Default))

{

    zip.ParallelDeflateThreshold = -1;

    zip.CompressionLevel = Ionic.Zlib.CompressionLevel.BestCompression;   //设置压缩率

    zip.AddFile(tmpBakFileName);

    zip.Save();

}

如果您在多核计算机上运行,并且希望tcp通信应用程序继续畅通无阻,则可以在后台线程中启动DotNetZip工作,并设置我上面提到的属性。为了进一步隔离,您可以将DotNetZip分解为一个单独的进程,并在该进程中设置亲和力+优先级,以及设置并行阈值属性。


该文章在 2024/1/19 22:47:39 编辑过
关键字查询
相关文章
正在查询...
点晴ERP是一款针对中小制造业的专业生产管理软件系统,系统成熟度和易用性得到了国内大量中小企业的青睐。
点晴PMS码头管理系统主要针对港口码头集装箱与散货日常运作、调度、堆场、车队、财务费用、相关报表等业务管理,结合码头的业务特点,围绕调度、堆场作业而开发的。集技术的先进性、管理的有效性于一体,是物流码头及其他港口类企业的高效ERP管理信息系统。
点晴WMS仓储管理系统提供了货物产品管理,销售管理,采购管理,仓储管理,仓库管理,保质期管理,货位管理,库位管理,生产管理,WMS管理系统,标签打印,条形码,二维码管理,批号管理软件。
点晴免费OA是一款软件和通用服务都免费,不限功能、不限时间、不限用户的免费OA协同办公管理系统。
Copyright 2010-2024 ClickSun All Rights Reserved