提问者:小点点

为什么C++在这段简单的代码中表现如此缓慢?[已关闭]


据说C++的性能比解释性编程语言要好。运行这个非常简单的程序后:

#include <iostream>

using namespace std;

int main()
{
    cout << 5+4 << endl;
    return 0;
}

时间执行非常慢:大约3秒。编译语言不是应该更快地执行这种类型的计算代码吗?为什么Python在Jupyterlabprint(5+4)中立即生成结果,而CodeBlocks不能呢?

提前多谢了。


共1个答案

匿名用户

阅读评论,似乎您不了解您正在使用的工具。

“Code::Blocks”是一个IDE-一个工具集合,包括文本编辑器,编译器和其他一些东西。

它可以使用不同的编译器,并且它具有许多以按钮表示的功能--编译,运行,调试等等。

您没有告诉我们您是如何“运行”您的程序的,也没有告诉我们您用代码块安装了什么编译器,但我的猜测是这样的:

你按了蓝色的“播放”(三角形)按钮,那就是你测量的时间。

这不是代码的运行时。

这是codeblocks启动编译器,将代码编译为机器语言,启动链接器,创建完整的可执行文件,然后启动该可执行文件所花费的时间。

大部分时间是编译器翻译代码和编写文件。

要真正衡量性能,首先需要了解创建C++程序是如何工作的。

使用Python,您没有这个过程--大多数IDE只是在您按下“Play”时在解释器中运行您的代码。

最起码,了解计算机代码块在哪里创建了程序exe文件,并直接从控制台(终端)运行该文件。

更好的做法是,在文件中创建一个循环,它可以多次执行某件事情,因为您显示的示例代码可能太快而无法测量,除非您使用的是time之类的工具,我认为Windows不容易使用这些工具。

相关问题


MySQL Query : SELECT * FROM v9_ask_question WHERE 1=1 AND question regexp '(c++|这段|简单|代码|中|表现|缓慢|关闭)' ORDER BY qid DESC LIMIT 20
MySQL Error : Got error 'repetition-operator operand invalid' from regexp
MySQL Errno : 1139
Message : Got error 'repetition-operator operand invalid' from regexp
Need Help?