社区
C语言
帖子详情
函数、类结构对性能的影响
bighead
2001-05-13 10:52:00
学C++一年,一些问题请内行指点
1。通过函数调用函数这种一层层调用对性能影响多大,比如将API封装
2。函数参数的多少大小对性能影响多大,是七八个参数好还是传递一个结构的引用好。
CB中的__fastcall(用register传递前三个参数)可以提高性能吗?
3。一个类的成员变量的多少、成员函数的多少对性能、资源占用的影响如何?
4。虚函数是不是比普通函数更占地方
5。我是不是该去看编译原理
谢谢!
...全文
96
2
打赏
收藏
函数、类结构对性能的影响
学C++一年,一些问题请内行指点 1。通过函数调用函数这种一层层调用对性能影响多大,比如将API封装 2。函数参数的多少大小对性能影响多大,是七八个参数好还是传递一个结构的引用好。 CB中的__fastcall(用register传递前三个参数)可以提高性能吗? 3。一个类的成员变量的多少、成员函数的多少对性能、资源占用的影响如何? 4。虚函数是不是比普通函数更占地方 5。我是不是该去看编译原理 谢谢!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
2 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
enterzhuang
2001-05-14
打赏
举报
回复
1.影响多大可以通过比较获得,运行函数前后获得系统时间,然后相减可以得到估计值。
2。结构引用比多参数好。
3。变量和函数太多对性能好象没大影响,但增加理解难度。
4。一言难尽,请自己看书(其实我也不大明白)。
5。一起学习吧!
duz
2001-05-14
打赏
举报
回复
不需要看编译原理,但最好还是学习一下汇编,然后看一下编译后的代码。
函数调用一次需要一堆的push指令将各个参数入栈,然后一个call指令引起代码跳转,一般来说,call指令是比较费时的,对性能的影响可以看一下函数代码的大小,如果函数本身很复杂,这点影响就可以忽略了,如果函数很小,建议分装时使用inline函数(现在一般编译器会自己判断),就不会产生真正的函数调用了。
传递参数太多就需要大量的push指令,当然效率差一些,传递一个结构指针是比较好的方案,(或采用引用,那其实是一回事),__fastcall调用将几个参数通过register传递,也就是说少了几条push指令,可以提高性能。但总体来说,几条push指令花费不了多少时间,影响不大,除非函数代码很小,此时还是同样建议用inline函数。
类成员的数目对性能资源等基本上没有什么影响。
需函数比普通函数是要占更多的地方,但是内存量很小。总的来说,代码要为每个类(儿不需要为每各类的每个实现)维护一张vtable表,描述了所有虚函数的入口。对于类的具体实现,只要将vtable变量指向正确的vtable表就可以了。
最后还要说明的是,这种函数调用问题总体上来说对性能印象不是很大,而且现在一般的代码对性能要求并不是很高,不应该花费过多时间在考虑这些问题上。
高
性能
MySQL实战课
由于互联网产品用户量大、高并发请求场景多,因此对MySQL的
性能
、可用性、扩展性都提出了很高的要求。使用MySQL解决大量数据以及高并发请求已经是程序员的必备技能,也是衡量一个程序员能力和薪资的标准之一。 为了...
MySQL深度解析---
函数
对
性能
的
影响
重点:对索引字段做
函数
操作,可能会破坏索引值的有序性,因此优化器就决定放弃走树搜索(索引)功能 一、条件字段
函数
操作 交易记录表tradelog 包含交易流水号(tradeid)、交易员id(operator)、交易时间(t_...
类
(class)和
结构
(struct)的区别是什么?它们对
性能
有
影响
吗?.NET BCL里有哪些是
类
(
结构
),为什么它们不是
结构
(
类
)?在自定义
类
型时,您如何选择是
类
还是
结构
?
前篇中也是老赵面试题的第一题,这篇继续,希望...它们对
性能
有
影响
吗?.NET BCL里有哪些是
类
(
结构
),为什么它们不是
结构
(
类
)?在自定义
类
型时,您如何选择是
类
还是
结构
? 先看MSDN上的C# 语言规范上的定义:
常用激活
函数
优缺点及
性能
对比
激活
函数
(Activation Function) 什么是激活
函数
? 人工神经网络的激活
函数
就是模仿生物神经网络。在生物神经网络中,信息的传递是通过神经元的树突和轴突的结合,(在前膜的内侧有致密突起和网格形成的囊泡栏栅,...
【机器学习】【基本理论】
结构
风险、
结构
风险、损失
函数
经验风险:一个损失
函数
的
函数
结构
风险:可简单理解为经验风险(一种损失
函数
的
函数
)+λ正则化项。因此,模型的
结构
风险
函数
包括了经验风险项和正则项,通常可以表示成如下式子:θ∗=argminθ1N∑i=1NL(yi,f(xi;θ...
C语言
69,373
社区成员
243,080
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章