簡體   English   中英

Magick.NET C#-大量內存使用

[英]Magick.NET C# - huge memory usage

我正在與Magick.NET庫作斗爭,因為將圖像文件轉換為pdf時,我的內存使用量超過4GB,CPU使用率是100%。 轉換完成后,一切恢復正常。 但是當我在一個應用程序的許多實例中使用此特定第三方時,會導致巨大的內存丟失。

在線圖像上存在問題.Write(newPdfPath);

using (MagickImageCollection images = new MagickImageCollection())
        {
            images.Read(orginalImage);

            images.Write(newPdfPath);
        }

圖像的大小不同,實際上大小無關緊要,因為轉換大小為7 KB的jpg時也存在此問題。

請幫忙!!!!

CPU和內存分配與硬盤驅動器上映像的大小無關。 它與您擁有的像素數完全相關。 如果您具有20,000像素乘以20,000像素的全白圖像,則硬盤驅動器上此文件的大小可以為6 MG,但是當使用Magick.net將其加載到內存中時,該文件的大小為GB。 因此,首先您必須查看圖像的大小(以像素為單位),然后我們才能判斷性能。 然后,您可以使用以下方法來提高性能:

一旦將圖像加載到內存中,就可以將其以.mpc格式寫入HDD,然后可以非常快速地將其加載到內存中。 (如果您需要加載幾次圖像)

使用Magikc.net q8而不是q16

如果您可以在並行循環上運行命令,則Magick.net 7版的運行速度幾乎可以提高4倍。

另一個答案是說您必須在完成圖像處理后處理它。

如果您以循環方式轉換圖像,則在轉換完成后放置每個圖像可能會有所幫助。 采用

Image.Dispose();

為了釋放圖像使用的非托管內存資源的方法。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM