如何获取运行“exe”的消耗内存

时间:2010-08-10 02:18:11

标签: java windows memory

我正在开发一个“在线评审系统”,如SGU“http://acm.sgu.ru/

我想获得使用Java运行“.exe”(。c / .cpp - > .exe)的准确消费记忆。

处理:提交代码 - > hello.cpp / .c - 编译 - > hello.exe - 运行 - >结果

我想知道如何获取运行“hello.exe”的消耗内存

代码:

Runtime rn = Runtime.getRuntime();

Process proc =rn.exec("hello.exe");

感谢您帮助我。

2 个答案:

答案 0 :(得分:1)

使用纯Java无法做到这一点。

在UNIX / Linux计算机上,您可以配置操作系统以启用进程记帐,然后读取“acct”文件中记录的信息。根据我读到的acct(5)手动条目,这记录了“平均”内存使用量而不是最大内存使用量。

Windows系统必然会有所不同。

答案 1 :(得分:0)

GetProcessMemoryInfo会告诉您一旦有句柄打开,进程正在使用多少内存。微软甚至有example使用该功能。

要获取您正在查找的进程ID,您需要枚举系统中的所有进程。微软有一个example对此也很有用。

修改: 这些示例都在C中。这是Win32 API的设计语言。从Java开始,您需要将其转换为JNI或找到执行相同操作的Java包。