工作这么多年,遇到的最诡异的问题: 调用空函数居然很耗时!!!
时间:2010-10-06
来源:互联网
int main() /*在文件main.c中*/
{
记录当前时间到buffer1;
func_a(); /*调用func_a函数,后面打印的时间显示耗时3ms,而改为调用func_b函数,基本不耗时,在A.c中再写个类似的空函数func_aa(),此处改为调用func_aa函数,同样耗时3ms左右,在B.c中再写个类似的空函数func_bb(),此处改为调用func_bb函数,同样不耗时.确认记录时间的方法没有问题,也确定func_命名的函数被调用了(如果增加打印是可以打印出来的)*/
记录当前时间到buffer2;
打印buffer1;
打印buffer2;
return 0;
}
void func_a() /*在文件A.c中*/
{
return;
}
void func_b() /*在文件B.c中*/
{
return;
}
CPU是powerpc,由于实际上func_a()不会直接return,而是要干事情的,所以耗时就更多了,超过了3ms,这个时间无法接受,也不可能把A.c中的东西都挪到B.c中去,因为很大很大。哪位牛人能帮忙搞定这个问题呀?
{
记录当前时间到buffer1;
func_a(); /*调用func_a函数,后面打印的时间显示耗时3ms,而改为调用func_b函数,基本不耗时,在A.c中再写个类似的空函数func_aa(),此处改为调用func_aa函数,同样耗时3ms左右,在B.c中再写个类似的空函数func_bb(),此处改为调用func_bb函数,同样不耗时.确认记录时间的方法没有问题,也确定func_命名的函数被调用了(如果增加打印是可以打印出来的)*/
记录当前时间到buffer2;
打印buffer1;
打印buffer2;
return 0;
}
void func_a() /*在文件A.c中*/
{
return;
}
void func_b() /*在文件B.c中*/
{
return;
}
CPU是powerpc,由于实际上func_a()不会直接return,而是要干事情的,所以耗时就更多了,超过了3ms,这个时间无法接受,也不可能把A.c中的东西都挪到B.c中去,因为很大很大。哪位牛人能帮忙搞定这个问题呀?
作者: eagerbever_m 发布时间: 2010-10-06
回复 eagerbever_m
3ms这么长?调度一次在10ms吧
建议你A。B 2个程序在shell里穿插,重复乱着连执行。看符合上面的规律不?
3ms这么长?调度一次在10ms吧
建议你A。B 2个程序在shell里穿插,重复乱着连执行。看符合上面的规律不?
作者: smalloc 发布时间: 2010-10-06
呵呵,这样的现象挺有意思。
要不单独做一个测试用例?
A.c B.c 的头文件是怎么样的?
链接命令又是怎么样的?
要不单独做一个测试用例?
A.c B.c 的头文件是怎么样的?
链接命令又是怎么样的?
作者: linyunxian 发布时间: 2010-10-06
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28