Visual Studio 编译器比 MinGW 慢得多

Visual Studio compiler is so much slower than MinGW

提问人: 提问时间:11/19/2021 更新时间:11/19/2021 访问量:198

问:

嗨,我试图看看 c++ 需要多少才能将 1 计算到 100000 我尝试使用 Visual Studio,运行需要 12.9604 秒,即使 python 也会运行得更快,我尝试使用 printf 类似的结果,然后我尝试使用 MinGW 编译器,在 MinGW 编译器中运行需要 0.0095653 我对两者都使用了相同的代码,然后我尝试删除 std::从循环中脱颖而出,他们都花了大约 3 秒,差别不大。 谁能告诉我为什么? 这是我的代码:

#include <chrono> // for std::chrono::high_resolution_clock
#include <iostream> // for std::cout

int main()
{
    auto start = std::chrono::high_resolution_clock::now(); // get the time before start
    for (int i = 0; i < 100000; i++)
    {
        std::cout << i << '\n';
    }
    auto end = std::chrono::high_resolution_clock::now(); // get the time after it's finished
    std::chrono::duration<double> took = std::chrono::duration_cast<std::chrono::duration<double>>(end - start); // calculates how much it took to run
    std::cout << "It took " << took.count() << " seconds to run the program";
}

编辑:这不是一个好的基准测试 MinGW IDE 使用自己的控制台,它比使用 cmd 的 Visual Studio 更快,我也尝试将 cmd 用于 MinGW 应用程序,结果相似。

C 可视化-C++ mingw IOstream

评论

1赞 NathanOliver 11/19/2021
你是在调试模式还是发布模式下编译的?
2赞 Jarod42 11/19/2021
你使用同一个控制台吗?
1赞 Scheff's Cat 11/19/2021
吹毛求疵:运行程序的不是 Visual Studio 编译器......(一旦C++程序被编译,它或多或少是一个独立的可执行文件。
4赞 Botje 11/19/2021
您的代码根本没有对编译器输出进行基准测试。它正在对机制和操作系统将所述输出呈现到终端的方式进行基准测试。尝试将输出重定向到文件,差异应该要小得多。cout
1赞 Botje 11/19/2021
否,您需要在“发布”模式下显式构建。这是编译器实际优化的模式。调试很慢。

答: 暂无答案