次の質問があります。 Fortran90 +でのallocate/deallocate文の実際のオーバーヘッドは何ですか? すなわち、いくつかの中型アレイはFortran allocate/deallocate
do i = 1, 1000
allocate(tmp(20))
tmp(1:20) = 1d0
call foo(tmp)
deallocate(tmp)
end do
ように、ループ内で割り当てられているが、この場合には、最大サイズに基づいて、単一の作業配列を割り当てることは価値がありますか?
顕著な節約があるかどうかは、「foo」を実行するのにかかる時間によって異なります。変化は価値があるのですか?意見の問題か、コンパイラとマシンの実行時間を測定する必要があります。変更によってコードが読みにくくなりますか?もしそうなら、それは実行時間のミリ秒を節約する価値がありますか?秒ですか? –