1

我有这个问题。我注意到我的 fortran 90 程序有许多子程序,它们在某些子程序中分配大矩阵。这些矩阵是局部的,因此仅在该子例程中使用。但是,我多次调用该子例程。他们这样做有开销吗?从某种意义上说:子程序是否在任何调用时分配大局部矩阵?因此,在主程序上分配变量并将其作为参数传递或将其放入模块中可能会更有效?或者这样做没有优势?谢谢阿尔贝托

4

1 回答 1

1

分配很可能会在您每次调用子例程时发生。根据每次调用在子例程中花费的时间,它可能会或可能不会导致显着的开销。计时并找出答案!有一些计时例程,例如secndscpu_time。我自己的偏好是预先分配一个缓冲区并避免不必要的重新分配。

于 2013-07-14T16:39:33.820 回答