![](/img/trans.png)
[英]Lumia Imaging SDK JpegRenderer.RenderAsync InvalidOperationException
[英]Lumia Imaging SDK v3 memory issues
我正在使用Lumia Imaging SDK v2
在我的應用程序中壓縮和裁剪圖像。 最近我們遇到了與壓縮和裁剪.wdp
格式圖像有關的問題; JpegRenderer.RenderAsync()
反復崩潰該特定格式類型。
為了解決這個問題,我們升級到SDK v3
,但是在對應用程序進行內存分析時,我發現SDK v3
中的內存使用率遠遠高於SDK v2
(參見附件截圖)。
v2
的峰值最大值為55 MB
但在v3
中峰值達到> 160 MB
。 在v2
我使用StorageFileImageSource
將圖像加載到內存中。 在v3
我使用BifferImageSource
來做同樣的事情。 我也使用using
語句來處理實現IDisposable
數據類型。
在v3
觀察到這種內存膨脹的原因是什么? 我能以任何方式避免它嗎? 另外,有沒有辦法在v2
呈現.wdp
格式的圖像?
在GPU上處理時,Lumia Imaging SDK 3.0使用的內存大於2.x(僅2.x上存在CPU處理)。 這里的不同之處在於CPU將同時處理整個圖像,因此不要使用平鋪 - 至少不是在RAJPEG意義上,因此您需要同時在內存中使用整個圖像資源。
要實現2.x級別的內存性能,您可以在渲染上設置僅CPU渲染。 請注意,這也會禁用GPU帶來的性能提升。
看一下[Renderer] .RenderOptions屬性。 在這種情況下,將其設置為RenderOptions.OnlyCPU。
我強烈建議閱讀有關更改RenderOptions的所有文檔,因為它會帶來一些非明顯的副作用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.