我正在开发一个“在线评审系统”,如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");
感谢您帮助我。
答案 0 :(得分:1)
使用纯Java无法做到这一点。
在UNIX / Linux计算机上,您可以配置操作系统以启用进程记帐,然后读取“acct”文件中记录的信息。根据我读到的acct(5)
手动条目,这记录了“平均”内存使用量而不是最大内存使用量。
Windows系统必然会有所不同。
答案 1 :(得分:0)
GetProcessMemoryInfo会告诉您一旦有句柄打开,进程正在使用多少内存。微软甚至有example使用该功能。
要获取您正在查找的进程ID,您需要枚举系统中的所有进程。微软有一个example对此也很有用。
修改: 这些示例都在C中。这是Win32 API的设计语言。从Java开始,您需要将其转换为JNI或找到执行相同操作的Java包。