社区
Java
帖子详情
单进程下,调用一个函数的代价有多小?
sleepingboy
2003-11-05 12:00:55
在《重构--改善既有代码的设计(中文版)》中,有一句话,“在单进程软件中,你永远不必担心多么频繁的调用某个函数,因为函数的调用成本很低”。(P106)
调用一个函数的代价为什么会低到可以“永远不必担心”的程度呢?
...全文
60
9
打赏
收藏
单进程下,调用一个函数的代价有多小?
在《重构--改善既有代码的设计(中文版)》中,有一句话,“在单进程软件中,你永远不必担心多么频繁的调用某个函数,因为函数的调用成本很低”。(P106) 调用一个函数的代价为什么会低到可以“永远不必担心”的程度呢?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
9 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
北极猩猩
2003-11-20
打赏
举报
回复
对于Java来说调用函数没有什么性能损失的。
因为Java虚拟机本身就是一个基于堆栈的虚拟机,执行任何操作都要压栈的,函数调用没什么特殊的
对于C++来说可以inline啊
kui
2003-11-08
打赏
举报
回复
没看过《重构--改善既有代码的设计(中文版)》,不好乱对该书发表评论。但是对“在单进程软件中,你永远不必担心多么频繁的调用某个函数,因为函数的调用成本很低”一句确实不易理解,我估计这里是指占用内存资源吧,而不是指占用CUP时间。
sleepingboy
2003-11-08
打赏
举报
回复
没人看过《重构》??
truezerg
2003-11-06
打赏
举报
回复
再你没有把表看针的时间缩短以前,你“永远不必担心”抬手所花费的时间
truezerg
2003-11-06
打赏
举报
回复
如果你看一次手表花在看表针是几点的时间上是30分钟而抬起手的时间是3秒钟,你会认为你抬一百次手很费力吗?
廖雪峰
2003-11-06
打赏
举报
回复
函数调用的成本:
1.CPU把相关寄存器压栈
2.转到函数体执行
3.执行完毕后恢复寄存器
花费就在1,3上,但是相对一个复杂算法来说这点时间微不足道。
把算法的效率提高1%就比优化这些函数调用强
sleepingboy
2003-11-06
打赏
举报
回复
为什么要强调“单进程”呢?
文中的意思似是说,及时几乎什么都不做的“委托”函数
也不用担心频繁调用
几乎没代价
alexll
2003-11-05
打赏
举报
回复
你会认为看看你的手表很费劲吗?
sleepingboy
2003-11-05
打赏
举报
回复
看一次当然没关系
可是一秒钟看100次手表呢?
怎么让我“永远不必担心”啊
嵌入式Linux-
进程
中常用的
函数
调用
execl()和execv()要求提供新程序的路径名,而 execlp()和 execvp()则允许只提供新程序文件名,系统会在由环境变量 PATH 所指定的目录列表中寻找相应的可执行文件,如果执行的新程序是
一个
Linux 命令,这将很有用;系统
调用
execve()可以将新程序加载到某一
进程
的内存空间,通过
调用
execve()
函数
将
一个
外部的可执行文件加载到
进程
的内存空间运行,使用新的程序替换旧的程序,而
进程
的栈、数据、以及堆数据会被新程序的相应部件所替换,然后从新程序的 main()
函数
开始执行。
系统
调用
、
进程
、线程详解
系统
调用
os提供了很多底层的重要
函数
,我们通过程序
调用
这些
函数
,被称为系统
调用
,举例: 为了保证安全性,我们并不能随意访问系统的资源,系统
函数
就是为用户提供的一种访问系统资源的安全的方式。 内核态和用户态 os通过划分内核态和用户态来达到这一隔离的目的,内核态可以访问任何数据,用户态不能访问内核数据。如Linux输入
一个
whoami命令,其实这个whoami就是
一个
系统
函数
,我们只是通过用户态去系统
调用
内核态的
函数
。 用户发起系统
调用
内核的代码的唯一方式就是中断指令int 其中用户
Linux下的多
进程
编程——fork(),exec()等
函数
的使用
Linux下的多
进程
编程初步
1 引言
对于没有接触过Unix/Linux操作系统的人来说,fork是最难理解的概念之一:它执行一次却返回两个值。fork
函数
是Unix系统最杰出的成就 之一,它是七十年代UNIX早期的开发者经过长期在理论和实践上的艰苦探索后取得的成果,一方面,它使操作系统在
进程
管理上付出了最小的
代价
,另一方面, 又为程序员提供了
一个
简洁明了的多
进程
方法。与DOS和早期的Windows不同,Unix/Linux系
Linux内核如何替换内核
函数
并
调用
原始
函数
浙江温州皮鞋湿,下雨进水不会胖。周六的雨夜,期待明天的雨会更大更冷。 已经多久没有编程了?很久了吧…其实我本来就不怎么会写代码,时不时的也就是为了验证
一个
系统特性,写点玩具而已,工程化的代码,对于而言,实在是吃力。 最近遇到一些问题,需要特定的解法,也就有机会手写点代码了。其实这个话题记得上一次遇到是在8年前,时间过得好快。 替换
一个
内存中的
函数
,使得执行流流入我们自己的逻辑,然后再
调用
原始的函...
回调
函数
详解
http://blog.csdn.net/tingsking18/article/details/1509224 一,回调
函数
我们经常在C++设计时通过使用回调
函数
可以使有些应用(如定时器事件回调处理、用回调
函数
记录某操作进度等)变得非常方便和符合逻辑,那么它的内在机制如何呢,怎么定义呢?它和其它
函数
(比如钩子
函数
)有何不同呢?使用回调
函数
实际上就是在
调用
某个
函数
(通常是API
函数
)时,将自...
Java
51,411
社区成员
86,025
社区内容
发帖
与我相关
我的任务
Java
Java相关技术讨论
复制链接
扫一扫
分享
社区描述
Java相关技术讨论
java
spring boot
spring cloud
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章