メモリの割り当て
 
 
 

ヒープ メモリ

malloc などの標準操作はグローバル ヒープから割り当てます。結果として、これらの操作はロックでシリアル化されます。多くのスレッドがヒープにアクセスする場合、特に、ロック処理のオーバーヘッドが非常に大きい OSX では障害が発生することがあります。スレッド対応メモリ アロケータは、メイン グローバル ヒープではなく複数のローカル ヒープを維持することで動作します。これによりメモリのシリアル化操作が回避され、パフォーマンスが向上します。スレッド化メモリ アロケータには、Hoard、SmartHeap、そしてTBB で提供されるメモリ アロケータなどがあります。

スタック メモリ

スレッドが作成されると、各スレッドは独自のスタックを取得します。これらのスタックのサイズには制約があり、超過することは可能ですが実行時に障害が発生します。スタック サイズを大きくすることが必要な場合はありますが、大きくしすぎるとリソースの制約に反することがあります。