最近在用python做一个ACM在线测试系统的后台评判程序,用户提交代码(可能有C/C++/JAVA)之后,我们在服务器(Linux系统)上进行编译,然后运行,一个很重要的问题就是获得程序的执行时间和程序的最大内存占用率。由于C/C++程序执行很快,大部分程序不到1秒就执行完了,最快的可能执行时间不超过1毫秒。
检测运行时间容易,检测内存我就不知道如何办了。原来用过一个方法,就是用python的subprocess运行用户程序,得到pid,然后用glan模块去循环检测内存占用率,对比得到最大内存占用率。这样做对于执行时间长点的程序还行,但是对于执行时间很短的程序就检测不到了,用户的程序在我启动检测程序之前就结束了。
想问问各位大神,有没有其他好的方法检测这样的程序的最大内存占用率?或者说有没有方法定时阻塞外部程序的执行然后再检测?再或者说如果用GDB调试的话能用python去控制和检测吗?
检测运行时间容易,检测内存我就不知道如何办了。原来用过一个方法,就是用python的subprocess运行用户程序,得到pid,然后用glan模块去循环检测内存占用率,对比得到最大内存占用率。这样做对于执行时间长点的程序还行,但是对于执行时间很短的程序就检测不到了,用户的程序在我启动检测程序之前就结束了。
想问问各位大神,有没有其他好的方法检测这样的程序的最大内存占用率?或者说有没有方法定时阻塞外部程序的执行然后再检测?再或者说如果用GDB调试的话能用python去控制和检测吗?