C言語におけるmallocとmmapの比較 質問する

C言語におけるmallocとmmapの比較 質問する

2 つのプログラムを作成しました。1 つは を使用しmalloc、もう 1 つは を使用しましたmmap。 を使用した場合の実行時間は、mmapを使用した場合よりも大幅に短くなりますmalloc

たとえば、 を使用すると、mmapシステムへの読み取り/書き込み呼び出しが回避され、メモリ アクセスが少なくなることがわかります。

mmapしかし、 を使用する場合の利点には他に何か理由があるのでしょうかmalloc?

どうもありがとう

ベストアンサー1

皆さん、一般に信じられていることとは反対に、mmap は実際には malloc に似たメモリ割り当て関数です。

mmap ファイルはその使用方法の 1 つです。ファイル記述子として -1 を渡すことで、メモリ割り当て関数として使用できます。

したがって、小さなオブジェクトには malloc を使用し、大きなオブジェクトには mmap を使用するのが一般的です。

これは良い戦略です。

関数スコープのみの変数には alloca() を使用します。

おすすめ記事