当前位置:  开发笔记 > 编程语言 > 正文

函数调用的成本是多少?

如何解决《函数调用的成本是多少?》经验,为你挑选了3个好方法。

相比

简单的内存访问

磁盘访问

另一台计算机上的内存访问(在同一网络上)

另一台计算机上的磁盘访问(在同一网络上)

在Windows上的C++中.



1> mfx..:

相对时间(不应超过100倍;-)

cache = 1中的内存访问

函数调用/返回缓存= 2

内存访问缓存= 10 .. 300

disk access = 1000 .. 1e8(摊销取决于传输的字节数)

主要取决于寻求时间

转移本身可以很快

涉及至少几千个操作,因为用户/系统阈值必须至少超过两次; 必须安排I/O请求,必须写回结果; 可能的缓冲区分配...

network calls = 1000 .. 1e9(摊销取决于传输的字节数)

与磁盘i/o相同的参数

原始传输速度可能很高,但另一台计算机上的某些进程必须完成实际工作



2> jW...:

函数调用只是将内存中的帧指针移位到堆栈上,并在其上添加新帧.函数参数被移入本地寄存器以供使用,并且堆栈指针被前进到堆栈的新顶部以执行该函数.

与时间相比

函数调用〜简单内存访问
函数调用<磁盘访问
函数调用<在另一台计算机
上访问内存函数调用<在另一台计算机上访问磁盘



3> Ferruccio..:

与简单的内存访问相比 - 稍微多一点,真的可以忽略不计.

与列出的其他所有东西相比 - 数量级更少.

这应该适用于任何操作系统上的任何语言.

推荐阅读
围脖上的博博_771
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有