Optimization “使用”对绩效的影响
我目前正在编写一个大型的Optimization “使用”对绩效的影响,optimization,fortran,Optimization,Fortran,我目前正在编写一个大型的fortran90code。大多数模块都有大量子例程(>15)。模块在其规范部分中使用其他模块,而其子例程在规范部分上使用其他模块。下面是它的外观: MODULE OneModule USE GlobalConstant USE GlobalVariable CONTAINS SUBROUTINE Subroutine1() [...] END SUBROUTINE Subroutine1 SUBROUTINE Subroutine2(
fortran90
code。大多数模块都有大量子例程(>15)。模块在其规范部分中使用
其他模块,而其子例程在规范部分上使用
其他模块。下面是它的外观:
MODULE OneModule
USE GlobalConstant
USE GlobalVariable
CONTAINS
SUBROUTINE Subroutine1()
[...]
END SUBROUTINE Subroutine1
SUBROUTINE Subroutine2()
USE Mesh
[...]
END SUBROUTINE Subroutine2
[Other Subroutines]
END MODULE OneModule
在每个模块中看到这一点,我想知道这样做是为了清晰还是优化。如果模块OneModule
有大量子例程,如果我们在规范部分使用模块MESH
,如果只有少数子例程需要它,会影响性能吗?我会感到震惊(并向编译器供应商编写错误报告)给定典型的编译器实现,如果使用位置对执行时间有任何影响。这可能会对编译时间产生无关紧要的影响
在内部或外部范围内定位更像是一个首选编程风格的问题,与标识符可访问性的程序需求交叉
(有一个例外,但与此无关。F2003为IEEE浮点支持引入了一组内在(编译器提供的)模块。仅存在其中一些模块就可以更改编译器为使用范围内的任何内容生成的代码。)