为什么 MinGW gfortran 在 Windows 上非常慢?

Why is MinGW gfortran on Windows extremely slow?

我已经在 MinGW 之上的 Windows 10 上安装了 gfortran(我不记得是如何安装的,它是一些现成的软件包)。我在文件 helloworld.f90

上写了这个 fortran 程序
program helloworld

    print *,'Hello World'

end program helloworld

并在命令提示符中使用

编译它

gfortran helloworld.f90 -o hello

我正在测试 ptime 需要多长时间

C:\fortran tests>ptime hello
===  hello ===
 Hello World
Execution time: 23.703 s 

C:\fortran tests>ptime hello
===  hello ===
 Hello World
Execution time: 1.225 s

C:\fortran tests>ptime hello
===  hello ===
 Hello World
Execution time: 1.227 s

我在没有 ptime 的情况下使用手动秒表对其进行了测试,并且得到了相似的时间,所以我认为 ptime 不是导致此问题的原因。是什么导致了这个极其缓慢的第 1 运行 23 秒?为什么下一次会更快?而且我认为超过 1s 仍然非常慢。我应该寻找哪些设置以及如何寻找?我在 SOF 中找不到任何类似的东西。此外,在我的 VirtualBox Ubuntu 上不会出现此问题,仅在 Windows.

上出现

如果您从某个地方获得了 gfortran,但您不知道是从哪里获得的,除了它可能与 MinGW 一起提供,那么您可能使用的是非常旧的版本。

您可以使用gfortran --version查看版本。它是 GCC 编译器套件的一部分,在撰写本文时,当前版本是 11.2.0。

您可以从 https://winlibs.com/ 获得最新版本的 GCC 编译器套件作为独立构建(无安装程序,只需解压缩),其中包含工作 gfortran.

原来问题出在我的病毒扫描程序上。感谢@albert 的提示。

这是公司笔记本电脑,我无法关闭病毒扫描程序。我以安全模式启动,现在病毒扫描程序已关闭,hello.exe 运行s 在 0.029 秒内。似乎合法。

旁注:我在安全模式下尝试 运行 的几乎所有其他 Fortran 测试程序都失败了,并显示错误消息“找不到 lib(...).dll”,但那将是另一个话题。