"Unmanaged memory" 在分析器图表中。这是内存泄漏指示吗?

"Unmanaged memory" at profiler diagram. Is this a memory leak indication?

我在分析我的应用程序的内存使用情况时遇到过这个图表:

如您所见,在第 "snapshot 1" 行之前,非托管内存大约占已用内存总量的一半。然后,在 "snapshot 1" 和 2 分 55 秒(见下面的时间线)之后,我强制执行垃圾回收。

正如我所料,第 2 代大部分已被收集,但未释放非托管内存,现在它拥有大约。已用内存总量的 2/3。

我不知道 "unmanaged memory" 在这种情况下是什么意思。 这是具有一些 WinForms/GDI+ 互操作的 WPF 应用程序。我敢肯定,应该处置的一切都已处置。此外,没有明确的平台互操作代码。其余托管内存正常。

这是内存泄漏指示吗?
如果是这样,这里检测内存泄漏的方法是什么?
这很重要吗,我使用的分析器是 JetBrains dotMemory。

"Total used" dotMemory 图表上的内存是进程的私有工作集。它是进程可执行文件要求的内存——不一定是它实际使用的内存量。它包括所有 DLL 和堆,但不包括内存映射文件(共享 DLL)。此外,无法判断它是属于可执行文件本身,还是属于链接库。它不仅仅是物理内存;它们可以被分页到磁盘或备用页面列表中(即不再使用,但也没有被分页)。 因此,非托管内存是私有工作集中的所有内容,托管 CLR 堆除外。通常,您没有简单的方法来更改纯 .net 进程的非托管内存量。并且在程序执行过程中大致保持不变。