1

この質問があります。私の fortran 90 プログラムには、いくつかのサブルーチンで大きな行列を割り当てる多くのサブルーチンがあることに気付きました。これらの行列はローカルであるため、そのサブルーチンでのみ使用されます。しかし、私はそのサブルーチンを何千回も呼び出しています。それを行う際のオーバーヘッドはありますか?ある意味では、サブルーチンはいつでも大きなローカル行列を割り当てますか? メインプログラムに変数を割り当て、それを引数として渡すか、モジュールに入れる方が効率的でしょうか? または、それを行う利点はありませんか?ありがとうアルベルト

4

1 に答える 1

1

割り当ては、サブルーチンを呼び出すたびに発生する可能性が高くなります。各呼び出しのサブルーチン内で費やされる時間に応じて、大きなオーバーヘッドが発生する場合と発生しない場合があります。時間をかけて見つけてください!secndsやなどのタイミング ルーチンがいくつかありますcpu_time。私自身の好みは、事前にバッファーを割り当て、不要な再割り当てを避けることです。

于 2013-07-14T16:39:33.820 に答える