Windows下如何获取某个进程(已退出)曾经占用过的内存空间的最大值?

自己做一个OJ系统的评测机,C#编写,在Windows Container容器里运行。需要抓取用户提交的程序在运行时占用的内存大小。

现在问题来了,虽说通过获取进程信息可以得到内存占用的值,但这只是个瞬时数据。有可能会获取的时候进程已经执行完了,或者是还没有执行到申请内存的部分,就导致不准确。循环获取也不能保证都能抓到,而且会占用CPU,影响用户提交的程序运行。

那有没有办法知道一个进程(已退出)在整个运行过程中最大占用过的内存是多少呢?

Windows下或许可以换个思路,限制分配给作业的内存。