对比
- 简单的内存访问
- 磁盘访问
- 另一台计算机上的内存访问(在同一网络上)
- 另一台计算机上的磁盘访问(在同一网络上)
在 Windows 上的 C++ 中。
最佳答案
相对时间(偏差不应超过 100 倍;-)
- 缓存中的内存访问 = 1
- 缓存中的函数调用/返回 = 2
- 内存访问超出缓存 = 10 .. 300
- 磁盘访问 = 1000 .. 1e8(摊销取决于传输的字节数)
- 主要取决于寻道时间
- 传输本身可以非常快
- 至少涉及几千次操作,因为用户/系统阈值必须至少超过两次;一个 I/O 请求必须被调度,结果必须被写回;可能分配了缓冲区...
- 网络调用 = 1000 .. 1e9(摊销取决于传输的字节数)
- 与磁盘 i/o 相同的参数
- 原始传输速度可能相当高,但另一台计算机上的某些进程必须完成实际工作
关于c++ - 函数调用的成本是多少?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/94794/