2 つのプログラムを作成しました。1 つは を使用しmalloc
、もう 1 つは を使用しましたmmap
。 を使用した場合の実行時間は、mmap
を使用した場合よりも大幅に短くなりますmalloc
。
たとえば、 を使用すると、mmap
システムへの読み取り/書き込み呼び出しが回避され、メモリ アクセスが少なくなることがわかります。
mmap
しかし、 を使用する場合の利点には他に何か理由があるのでしょうかmalloc
?
どうもありがとう
ベストアンサー1
皆さん、一般に信じられていることとは反対に、mmap は実際には malloc に似たメモリ割り当て関数です。
mmap ファイルはその使用方法の 1 つです。ファイル記述子として -1 を渡すことで、メモリ割り当て関数として使用できます。
したがって、小さなオブジェクトには malloc を使用し、大きなオブジェクトには mmap を使用するのが一般的です。
これは良い戦略です。
関数スコープのみの変数には alloca() を使用します。