本文介绍了函数调用的成本是多少?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

对比

  • 简单的内存访问
  • 磁盘访问
  • 另一台计算机上的内存访问(在同一网络上)
  • 另一台计算机上的磁盘访问(在同一网络上)

在 Windows 上的 C++ 中.

in C++ on windows.

推荐答案

相对时序(偏差不应超过 100 倍;-)

relative timings (shouldn't be off by more than a factor of 100 ;-)

  • 缓存中的内存访问 = 1
  • 缓存中的函数调用/返回 = 2
  • 缓存外的内存访问 = 10 .. 300
  • 磁盘访问= 1000 .. 1e8(摊销取决于传输的字节数)
    • 主要取决于寻道时间
    • 传输本身可能非常快
    • 至少涉及几千次操作,因为用户/系统阈值必须至少跨越两次;I/O 请求必须被调度,结果必须被写回;可能分配了缓冲区...
    • 与磁盘 i/o 的参数相同
    • 原始传输速度可能相当高,但另一台计算机上的某些进程必须执行实际工作

    这篇关于函数调用的成本是多少?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

06-20 09:28