インテル® C++ コンパイラー 19.1 デベロッパー・ガイドおよびリファレンス

インテルのメモリー・アロケーター・ライブラリー

高速にメモリーを割り当てるインテルの libqkmalloc ライブラリーは、パフォーマンスが最適化されたメモリー割り当て用の C レベルのインターフェイスを提供します。

libqkmalloc ライブラリーは、インテル® 64 アーキテクチャー・ベースの Linux* プラットフォームでのみ共有ライブラリーとしてリンクできます。このライブラリーは、標準の割り当てルーチン malloccallocrealloc、および free の最適化された実装を提供し、C99 標準に準拠しています。

このライブラリーは、インテル® プロセッサーでみ利用できます。インテル以外のプロセッサーでは、実行時に標準 C ルーチンにリダイレクトされます。

インテルのカスタム・メモリー・アロケーター・ライブラリーの使用

libqkmalloc ライブラリーは、直接リンクするか、LD_PRELOAD 環境変数を設定して使用できます。

アプリケーションが libqkmalloc で標準ライブラリーの割り当てルーチンをオーバーライドするようにするには、アプリケーションを実行する前にコマンドラインで LD_PRELOAD 環境変数を設定します。この環境変数を使用すると、ほかのライブラリー (C ランタイム・ライブラリーを含む) の前にロードされるライブラリーのパスを設定でき、アプリケーションは標準ライブラリーのシンボルの代わりに指定されたライブラリーのシンボルを使用します。

制約事項

このライブラリーは、OpenMP* などのマルチスレッド・コードをサポードしていないため、スレッドセーフではありません。複数のスレッドで同時に使用されるべきではありません。このライブラリーは、スループットが大きいワークロードで最良の結果が得られます。

最適化に関する注意事項

インテル® コンパイラーでは、インテル® マイクロプロセッサーに限定されない最適化に関して、他社製マイクロプロセッサー用に同等の最適化を行えないことがあります。これには、インテル® ストリーミング SIMD 拡張命令 2、インテル® ストリーミング SIMD 拡張命令 3、インテル® ストリーミング SIMD 拡張命令 3 補足命令などの最適化が該当します。インテルは、他社製マイクロプロセッサーに関して、いかなる最適化の利用、機能、または効果も保証いたしません。本製品のマイクロプロセッサー依存の最適化は、インテル® マイクロプロセッサーでの使用を前提としています。インテル® マイクロアーキテクチャーに限定されない最適化のなかにも、インテル® マイクロプロセッサー用のものがあります。この注意事項で言及した命令セットの詳細については、該当する製品のユーザー・リファレンス・ガイドを参照してください。

注意事項の改訂 #20110804