2012-01-09 11 views
3

プログラムでメモリー使用量をチェックするために使用できるAIXシステム・コールのアドバイスはありますか?私は大規模な無制限の一連のメモリ内キャッシュのために、現在メモリ不足(32ビット、AIX 6.1上の大容量メモリモデルを使用)を実行している大規模なマルチスレッドC++アプリケーションを使用しています。私は確かにキャッシュの成長を制限することができますが、その複雑な構造のためにどれくらいの大きさになっているのかは分かりません。プロセスがどれだけのメモリを占めているかを評価し、それに基づいて制限するだけのIMOがはるかに優れています。AIXでのプログラム・メモリー・モニター

非常に大きなメモリモデルを使用することは、共有メモリの使用による可能性はなく、64ビットへの移行も短期間では実現できません。

私は私のアプリケーションでは、次の作業細かいことがわかっAIXの場合
+0

これは、あなたが生産的な方向に向かうようになるでしょう.../procファイルシステムまたはsysfsからの読み込みを調べてみてください。 – brandong

+0

@vikrantislav:どうもありがとうございます。 –

答えて

2

:私はVMINFO(/usr/include/sys/vminfo.h)を使用すると、あなたが使用するメモリを取得することができるはずと信じてい

#include <unistd.h> 
#include <sys/types.h> 
#include <sys/resource.h> 

// total physical memory (in bytes) 
size_t total_memory = sysconf(_SC_AIX_REALMEM) * 1024; 

// maximum resident set of the process 
struct rusage usage; 
getrusage(RUSAGE_SELF, &usage); 
size_t used_memory = (usage.ru_maxrss)*1024); 

システム全体。