c++ - 为什么编译时间的持续时间至关重要?

标签 c++ c performance compilation compile-time

我经常看到程序员,尤其是在 StackOverflow 上,他们指出各自程序的编译时间,有时打算缩短这些相应的时间,即使结果只是微妙的。

当然,我可以理解,当程序员在任何程序的开发过程中,创建、测试和编辑源代码的来回节奏,并以此来保持这些过程之间的时间间隔短很重要,但我只是不明白如果编译时间只有几毫秒,为什么这是一个大问题?

即使只有几秒钟,为什么呢?我们可以在这段时间内从编码或其他任何事情中稍微放松一下。

我们是不是太不耐烦了?

或者我还遗漏了一些关于编译时的伪装指示的内容吗?

为什么编译时的持续时间很重要? 这是否表明了一些?

最佳答案

i just can not understand why is this such a big matter if the compilation time is only a few milliseconds?

因为这不是“几毫秒”的问题。只有小型和/或玩具应用程序才需要如此短的时间来编译。

当人们提示 C++ 编译时间时,他们提示的是几分钟或小时的时间尺度(对于大型项目来说,全天的完全重建并非闻所未闻)。大规模 C++ 开发的编译时间就那么长。在程序中触及错误的 header 有时会导致耗时数小时的编译。

程序员的工作就是编程。这意味着编写代码,还要执行和测试代码。编译时间是死时间,在此期间,所有这些都没有真正发生。

We just could do a little bit of relaxing from the coding or anything else in that time.

有一个心理学概念“flow",”,其中您的精神顶空紧密关注您正在执行的任务。从计算机的角度来看,您可以将流程视为指令和数据缓存处于这样的状态:进行复杂计算所需的所有代码和信息。因此一切都尽可能高效地进行。

从流程中“放松”就像转储缓存一样。哪怕只是短暂的休息。为了重新开始做你正在做的事情,你现在必须将所有这些东西重新加载回内存中。是的,这不会花费大量时间,但它的效率远低于没有缓存转储的情况。

超过一分钟左右的间隙不仅会转储缓存,还会转储整个虚拟内存。所以现在你尝试做的一切都是页面错误,需要硬盘访问。同样,您可以完成工作,但速度比需要的要慢得多。

因此,即使程序员可以在其他任务上取得进展,他们的工作效率也不会达到应有的水平。

关于c++ - 为什么编译时间的持续时间至关重要?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59411322/

相关文章:

c++ - SDL2 对 MinGW 的几个函数的 undefined reference

c++ - 访问没有赋值的 Linux 环境变量

c++ - 我的 windowProc 函数中的奇怪条件语句行为

c - 为什么改变随机数生成器会改变 C 中快速排序的运行时间

mysql - 我如何优化其中包含多个 NOT LIKE 语句的 AND?

c++ - 在不同斜坡上平移 openGL 中的对象

c++ - C 全局静态 - 在线程之间共享?

c - 关于函数指针的声明

Javascript 更快地替换 HTML 代码中的 "variables"

python - 在 Python 2 中对 10**6 位数字进行高效排序