Ste*_*and 2 c++ performance memory-management
在回答了那个问题并且被拒绝后,我想和你一起检查一下.
为了得到我编写的代码成本的草案,我倾向于以这种方式扩展操作.
您认为这是正确的假设/数量级/估计吗?
(当然,没有什么比真正的应用程序分析:-))
编辑:作为根据你的答案和评论的第一个结论,可以说我的数字1000被大大高估了.
如果您要进行类似的大规模概括,您可能需要考虑使用硬数据来备份它们.
我不怀疑你对大多数架构的相对效率你是对的(我说的最简单,因为可能有一些奇怪的架构,我不知道),但这些1000x比例是可疑的,没有证据.
而实际上,我不是说某些有关屏幕和磁盘I/O的相对效率,因为它可以通过缓冲的影响.我经常发现,在将输出定向到磁盘文件时,向屏幕输出数千行的程序运行得更快.
例如,以下程序:
#include <stdio.h>
int main (void) {
int i;
for (i = 100000; i > 0; i--)
printf ("hello\n");
return 0;
}
Run Code Online (Sandbox Code Playgroud)
运行方式:
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
Run Code Online (Sandbox Code Playgroud)
换句话说,该环境中的屏幕I/O(XP下的CygWin)持续时间长达67倍,CPU时间长达17倍(可能是因为所有Windows更新).
| 归档时间: |
|
| 查看次数: |
639 次 |
| 最近记录: |