2012-04-07 4 views
4

spoj.plのようなプログラミングジャッジを作成しようとしています。 C/C++/Javaプログラムが使用している時間とメモリを測定する必要があります。私は実行したいプログラムのために最大限のメモリ制限を設定したい。私はそれをどうすればできるのかお勧めしますか?実行中にC/C++/Javaプログラムが使用するメモリを測定する方法は?

+1

プログラムで使用するメモリの量の測定と、最大で使用できる量の設定との間には大きな違いがあります。少なくともJavaには存在します。また、最も基本的な研究(単一のGoogle検索)でも、あなたには正しいコマンドラインスイッチが見つかりました。 – Voo

答えて

1

を呼び出すことによって
5.再開プロセスのメインスレッドを処理します。


制限するには、すなわち:

Linuxのコマンドライン:>$ ulimit -v NNN && ./tha_prog$ man ulimit$ ulimit -a。コード化された

LinuxのC:>setrlimit() linux.die:setrlimit、はOpenGroup:setrlimit

のWindows:CreateJobObjectJob Objects

はその後、質問にも制限するものになり。動的ライブラリ対静電気など


プロファイルに:

callgrindとValgrindは、 - とIE kcachegrindを、+++。

0

Windows上であなたはあなたがいない現在、別の仕事で任意のプロセスをサンドボックス化することを可能にするカーネルオブジェクトですjobsを、使用することができます。最大処理時間やメモリ/ワーキングセットの制限など、さまざまな種類の制限をすべて適用することができます。

いくつかのステップは、あなたが
に制限を配置したい中断プロセスを作成し、あなたの制限を設定するには、カーネルオブジェクト
2.コールSetInformationJobObject
3へのハンドルを取得する
1.コールCreateJobObjectがあります。 、...-依存 - 仕事とプロセスと 4.コールAssignProcessToJobObjectはwhere-、how-、何を、システム - ResumeThread

関連する問題