Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Windows下Cygwin中的可执行文件速度比VirtualBox中Linux中的慢_Linux_Windows_Fortran_Cygwin_Gfortran - Fatal编程技术网

Windows下Cygwin中的可执行文件速度比VirtualBox中Linux中的慢

Windows下Cygwin中的可执行文件速度比VirtualBox中Linux中的慢,linux,windows,fortran,cygwin,gfortran,Linux,Windows,Fortran,Cygwin,Gfortran,我有Fortran代码和许多生成可执行文件的.f文件。我运行了模拟,并在Linux中成功地执行了软件(在虚拟机中)。当我在Windows中的Cygwin环境中执行相同操作时,它正在成功运行,但只慢了几秒钟。我正在处理的fortran代码是一个迭代代码。每一次迭代的速度都慢了几毫秒。当我运行整个代码1000次时,它延迟了几秒钟。我使用时间包来了解虚拟盒中的总执行情况 实0.061s 用户0m0.036s sys 0m0.020s 在使用powershell的measure命令的windows中:总

我有Fortran代码和许多生成可执行文件的.f文件。我运行了模拟,并在Linux中成功地执行了软件(在虚拟机中)。当我在Windows中的Cygwin环境中执行相同操作时,它正在成功运行,但只慢了几秒钟。我正在处理的fortran代码是一个迭代代码。每一次迭代的速度都慢了几毫秒。当我运行整个代码1000次时,它延迟了几秒钟。我使用时间包来了解虚拟盒中的总执行情况 实0.061s 用户0m0.036s sys 0m0.020s

在使用powershell的measure命令的windows中:总执行时间=0.095秒

每次Linux都会赢得这场竞赛,即使Virtual Box只占用处理器的一半核心和ram的一半。这种行为是正常的还是有问题

这是正常的。 cygwin上的fork实现很慢,因为绕过Windows限制需要大量的变通方法


在forks过程中,重复编译可能会浪费很多时间。

您至少应该显示度量结果。几分钟内几秒钟还是几小时内几秒钟?这是什么样的代码?@Daniel请不要编辑那些恰好也是标记的单词作为代码的格式。对代码使用代码标记。像Linux和Windows这样的单词应该用大写字母正常书写。另外,展示如何编译代码也很重要。特别是使用了哪些优化标志。为什么一个简单的迭代程序会执行任何fork?运行代码1000次,所以1000次fork,可能是1000次防病毒检查。在代码占用系统时间的地方向strace查询,它可能会给你额外的数据。因此,他单独运行可执行文件1000次,而不是在一个可执行文件中进行1000次计算?这几乎可以做任何事情。。。