2012-04-07 44 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

相關問題