gpt4 book ai didi

c++ - 一些基本操作的 CPU 成本数量级

转载 作者:太空狗 更新时间:2023-10-29 23:42:18 24 4
gpt4 key购买 nike

在回答 that SO question 之后被拒绝了,我想和你核实一下。

为了对我编写的代码的成本有一个初步的想法,我倾向于以这种方式扩展操作。

  • 堆分配比堆栈分配慢大约 1000 倍。
  • 带屏幕/输出的 IO 约为 1000 次比堆分配慢。
  • 硬盘驱动器上的 IO 速度大约慢 1000 倍比屏幕上的图形 IO。

您认为这是正确的假设/数量级/估计吗?

(当然,没有什么比真正的应用程序分析更好的了:-))

编辑:作为根据您的回答和评论得出的第一个结论,有人可能会说我的数字 1000 被很大程度上高估了。

最佳答案

如果您要进行这样的大量概括,您可能需要考虑使用硬数据来支持它们。

我不怀疑你对大多数架构的相对效率是正确的(我说最简单是因为那里可能有一些我不知道的奇怪架构)但是1000x 比率在没有证据的情况下是可疑的。

实际上,我不是确定屏幕和磁盘 I/O 的相对效率,因为它会受到缓冲的影响。我经常发现将输出定向到磁盘文件时,将数千行输出到屏幕的程序运行速度更快。

例如下面的程序:

#include <stdio.h>
int main (void) {
int i;
for (i = 100000; i > 0; i--)
printf ("hello\n");
return 0;
}

运行为:

pax$ time myprog
hello
hello
:
hello

real 0m12.861s
user 0m1.762s
sys 0m2.002s

pax$ time ./myprog >/tmp/qq

real 0m0.191s
user 0m0.160s
sys 0m0.050s

换句话说,该环境(XP 下的 CygWin)中的屏幕 I/O 持续时间是原来的 67 倍,CPU 时间是原来的 17 倍(大概是因为所有的窗口更新)。

关于c++ - 一些基本操作的 CPU 成本数量级,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4977726/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com