- C言語なら俺に聞け! Part 135©2ch.net
42 :デフォルトの名無しさん[sage]:2016/05/13(金) 14:03:47.48 ID:K5STjXBE - 助けて欲しいのですが
今大量にmalloc&freeをするアプリケーションをlinuxで作っているのです。 そしたらvirtual memoryの使用量が数〜数十GBになっているのです。 しかし実際に使ってる物理メモリは数kbなのです。 あとずっと(1時間とか)そのプログラムを走らせてるとswap領域がグリグリ増えていきます。そして重くなります。 何が気になるって普通のメモリ部分じゃなくてスワップ部分がグリグリ増えていくのです。 これって単純にフリーのし忘れによっておこるのでせうか? それとも何か内部的仕組みに対して私が悪いことをしてしまっているのでせうか? このアプリケーション一度に500個くらいのスレッドを動かすものなのですがもしかしてそれに理由があるのでせうか? virtual memoryの値がグリグリ増えるのは別に構わないのですがswap領域の使用量が増えるのには納得いきませぬ。 ちなみに再帰的構造体を大量に使うのでmalloc以外の方法がありません。 ご教授お願いいたしまし候。
|
|