Oracle® Developer Studio 12.5: パフォーマンスライブラリユーザーズガイド

印刷ビューの終了

更新: 2016 年 6 月
 
 

実行時の問題

実行時に、コンパイラの並列化を使用して実行している場合、Oracle Developer Studio パフォーマンスライブラリはコンパイラと同じスレッドのプールを使用します。スレッドごとのスタックサイズはすべてのプラットフォームで少なくとも 8M バイトに設定する必要があります。 これは、STACKSIZE または OMP_STACKSIZE 環境変数 (K バイト単位) で行います。両方は使用できません。同時に 2 つの環境変数を使用して、2 つの値が異なる場合、プログラムはエラーメッセージを表示して停止します。

スレッドごとのスタックサイズを 8M バイトに設定するには:

my_host% setenv STACKSIZE 8192

POSIX または Oracle Solaris スレッドで実行するプログラムには STACKSIZE 環境変数を設定する必要はありません。この場合、パフォーマンスライブラリルーチンを呼び出すユーザー作成スレッドには、少なくとも 8M バイトのスタックサイズが必要です。パフォーマンスライブラリルーチンに十分なスタックサイズを提供できないと、スタックオーバーフローの問題が発生する可能性があります。スタックオーバーフローの問題の現象には、診断が難しくなる可能性がある実行時の障害が含まれます。ユーザー作成スレッドのスタックサイズの設定の詳細については、POSIX スレッド用の pthread_create(3C)pthread_attr_init(3C)、および pthread_attr_setstacksize(3C) のマニュアルページまたは Oracle Solaris スレッド用の thr_create(3C) を参照してください。


ヒント  -  コアダンプの診断の問題が発生している場合は、スタックサイズを最小以上に増やしてみてください。