免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2390 | 回复: 7
打印 上一主题 下一主题

删帖吧 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2010-01-08 00:28 |只看该作者 |倒序浏览
本帖最后由 xyfree 于 2012-01-21 03:38 编辑

论坛徽章:
0
2 [报告]
发表于 2010-01-08 10:34 |只看该作者
性能比较低?哪里看到的话,我不认为

>>fastcall 方式 的 fast 体现在哪里呢?

使用寄存器传参当然fast

>>unix 下和 windows下的API调用又是哪种协定?

unix主要是c call
windows主要是stdcall

论坛徽章:
0
3 [报告]
发表于 2010-01-08 20:01 |只看该作者
寄存器够用了,一般情况下。这句话绝对是扯淡!

论坛徽章:
0
4 [报告]
发表于 2010-01-09 00:45 |只看该作者

回复 #3 prolj 的帖子

哪句话扯淡?

不过我倒是觉得退栈的时候Pascal方式(也叫stdcall是吧?)
的确是比较方便

论坛徽章:
0
5 [报告]
发表于 2010-01-10 11:13 |只看该作者
估计自己试试去实现这几个调用方式就知道差别了

论坛徽章:
0
6 [报告]
发表于 2010-01-10 20:51 |只看该作者

回复 #5 nicolas.shen 的帖子

还是谈谈你们所的先进研究方向等等吧

论坛徽章:
0
7 [报告]
发表于 2010-01-11 17:44 |只看该作者
堆栈是一种数据结构,具体要分析高速缓冲的读写方式,才能找到快慢的原因,可是我认为pascal慢。

论坛徽章:
0
8 [报告]
发表于 2010-01-12 09:24 |只看该作者
原帖由 xyfree 于 2010-1-8 00:28 发表
C语言的调用协定是:

1. 参数从右往左依次入栈

2. 能够支持参数个数未知的函数,但是性能比较低(为什么性能会比较低?);

3. 由于函数本身并不知道参数的个数,所以清除栈的工作要交由调用者来完成。 ...


fast因为在参数少的时候使用寄存器传送,就不需要压栈。栈是内存,访问内存没有cache和寄存器快,寄存器可是和cpu跑的一样快。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP