我正在编写一个实时处理应用程序,它分配了大量内存并正确释放它们。
我的应用程序的内存消耗还可以,很长一段时间没有泄漏,但是我遇到了另一个问题。
我的服务器具有64 Gb内存。
在我的应用程序开始工作之前,任务管理器显示它有5 GB的内存“正在使用”,运行我的应用程序10个小时后,任务管理器显示我的应用程序消耗了10 GB的内存,但是任务管理器显示服务器具有<正在使用> 60 GB 的强大内存。
当我终止应用程序“使用中”时,内存将减少10 GB并显示50 GB。
此外,当我看到任务管理器的“用户”标签时,它显示了12 GB的内存使用情况。
现在,我想知道任务管理器“使用中”的内存使用量(60 GB)和我的进程内存的使用量(用户内存使用量12 GB)之间的区别是由什么引起的?我该如何面对呢?我忘了申请任何内存管理点吗?
由于内存“使用中”的增长直到达到内存容量,服务器性能会在一段时间内降低。
任务管理器“正在使用”部分的额外内存使用量是什么?
我在下面阅读了关于StackOverflow的类似问题,但没有清楚地得到答案。
How does Windows Task Manager calculate "In Use" memory
Accessing CPU/RAM usage (like with Task Manager, but via API!)?
我在Windows Server 2016/2019和Windows 10中观看了此观察。
我现在无法从服务器获取屏幕截图,因此我从PC上获取屏幕截图,并在以下图像中显示相关部分。如您所见,我的电脑有类似的问题,并且用户内存使用量(1105MB)和任务管理器“正在使用”内存使用量(2.6 GB)存在差异。