首页 > 解决方案 > Aspose.svg 的内存泄漏

问题描述

我在 API 服务中调用以下方法并尝试使用 Aspose.Svg 库来创建 Aspose.svg 文档:

public async Task<PlanGroupCategory> UploadPlanAsync(byte[] byteStream, string mimeType)
{
    if (byteStream == null)
        throw new Exception("Hinzugefügte Dateien sind leer.");
    
    using (MemoryStream stream = new MemoryStream(byteStream))
    {
        if (stream == null)
            throw new BauDrException("Svg Document ist leer.");
        stream.Seek(0, SeekOrigin.Begin);
        using (var document = new SVGDocument(stream, "."))
        {
            (...)
        }
    }
}

调用using (var document = new SVGDocument(stream, "."))应用程序后会消耗大量非托管内存。内存从 200 MB 跃升至 +/- 1.3 GB,并且永远不会被释放。重复用例后,内存上升。

从客户端上传的 svg 文件为 2.6 MB。使用 Visual Studio 诊断程序和 JetBrains dotmemory 检查内存泄漏。

调用垃圾收集器后,内存并没有被释放。个人“处置”的呼吁也没有奏效。

有人知道这个问题的任何解决方案吗?

标签: c#asp.net-coresvgmemory-leaksaspose

解决方案


推荐阅读