我无法弄清楚为什么以下代码片段的执行时间在windows(MSVC ++)虚拟机,linux(GCC)虚拟机和Mac(xCode)物理机器上显着不同。
#include <iostream> #include <ctime> #include <ratio> #include <chrono> using namespace std; using namespace std::chrono; int main() { const int TIMES = 100; const int STARS = 1000; steady_clock::time_point t1;// = steady_clock::Now(); steady_clock::time_point t2;// = steady_clock::Now(); int totalCountMicro = 0; int totalCountMilli = 0; for(int i = 0; i < TIMES; i++) { t1 = steady_clock::Now(); for (int j = 0; j< STARS; j++) cout << "*"; t2 = steady_clock::Now(); cout << endl; totalCountMilli += duration_cast<duration<int,milli>>(t2 - t1).count(); totalCountMicro += duration_cast<duration<int,micro>>(t2 - t1).count(); } cout << "printing out " << STARS << " stars " << TIMES << " times..." << endl; cout << "takes " << (totalCountMilli / TIMES) << " milliseconds on average." << endl; cout << "takes " << (totalCountMicro / TIMES) << " microseconds on average." << endl; getchar(); return 0; }
上面的代码试图打印1000个星星100次,并计算打印1000颗星的平均时间。
结果是:
windows虚拟机:
编译器:MSVC
33554微秒
编译器:GCC
40787微秒
linux虚拟机:
编译器:GCC
39微秒
OSX物理机器:
编译器:xcode C ++
173微秒
首先想到的是,这可能是虚拟机的问题,但是由于linux虚拟机做得很快,我相信这可能是其他原因,我不知道。
任何想法或意见将不胜感激!
总结以上是内存溢出为你收集整理的为什么MSVC编译器比Linux上的gcc和Mac上的Xcode C ++编译器慢得多全部内容,希望文章能够帮你解决为什么MSVC编译器比Linux上的gcc和Mac上的Xcode C ++编译器慢得多所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)