2012-04-07 68 views
4

我想创建一个像spoj.pl这样的编程法官。我必须测量一个C/C++/Java程序正在使用的时间和内存。我想为我希望执行的程序设置最大内存限制。你能建议我怎么能做到这一点。如何在执行期间测量C/C++/Java程序使用的内存?

+1

测量一个程序使用多少内存和设置它最多允许使用多少内存之间有巨大的差异。至少在java中有。即使是最基础的研究(单一谷歌搜索)也会找到你正确的命令行切换。 – Voo 2012-04-07 19:06:55

回答

1

系统 - ,处理
5.恢复进程的主线程中─,如何 - 什么 - ,...-依赖。


为了限制,即:

Linux命令行:>$ ulimit -v NNN && ./tha_prog$ man ulimit$ ulimit -a

Linux下C编码:>setrlimit() linux.die:setrlimit,OpenGroup的:setrlimit

的Windows:CreateJobObjectJob Objects

接下来的问题也成为什么限制。静态VS动态库等


要分析:

Valgrind的与callgrind, - 和IE kcachegrind,+++。

0

在Windows下你可以使用jobs,这是内核对象,让你没有沙箱目前在另一份工作的任何进程。您可以应用所有不同类型的限制,包括最大处理时间和内存/工作集限制。

有几个步骤
1.呼叫CreateJobObject以得到一个处理内核对象
2.呼叫SetInformationJobObject来设置限制
3.创建要放在
限制挂起的进程 4.调用AssignProcessToJobObject与任务和流程,通过调用ResumeThread

相关问题