双11狂欢大促

盲盒赢 定制羽绒服

开启惊喜盲盒,抽取你的专属好礼

— 惊喜奖品抢先看 —

全局变量和局部变量的性能问题

P_T_P P_T_P 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
测试程序:该测试程序分别调用相同的函数1000000次,但两种调用不同的是前一种传入局部变量,后一种传入全局变量。分别统计了两种调用的时间消耗,精确到微妙。
环境:redhat 2.6.18-53.el5
[dhcp2@dhcp_host lcm]$ vi t8.cpp

1 #include <stdio.h>
2 #include <sys/time.h>
3 int j;
4 void f(int i)
5 {}
6 int main()
7 {
8 int i;
9 struct timeval tv1,tv2;
10 gettimeofday(&tv1,NULL);
11 for(i=0;i<10000000;i++)
12 {
13 f(i);
14 }
15 gettimeofday(&tv2,NULL);
16 printf("usec=%u\n",(tv2.tv_sec-tv1.tv_sec)*1000000+(tv2.tv_usec-tv1.tv_usec));
17 gettimeofday(&tv1,NULL);
18 for(j=0;j<10000000;j++)
19 {
20 f(j);
21 }
22 gettimeofday(&tv2,NULL);
23 printf("usec=%u\n",(tv2.tv_sec-tv1.tv_sec)*1000000+(tv2.tv_usec-tv1.tv_usec));
24 return 0;
25 }

"t8.cpp" 27L, 505C 已写入
[dhcp2@dhcp_host lcm]$ g++ t8.cpp
[dhcp2@dhcp_host lcm]$ ./a.out
usec=46303
usec=52991
[dhcp2@dhcp_host lcm]$ ./a.out
usec=46418
usec=52901
[dhcp2@dhcp_host lcm]$ ./a.out
usec=46384
usec=52942
[dhcp2@dhcp_host lcm]$

从运行结果可以看出,全局变量的调用效率低于局部变量。

实在想不出原因,望高人指点
...全文

相关推荐

交互原型设计:全局变量和局部变量的使用.pptx

全局变量和局部变量的使用;全局变量和局部变量的使用;单击“项目菜单”的“全局变量”选项,在打开的“全局变量”的对话框里可以新增和编辑全局变量。 默认有一个全局变量“OnLoadVariable”,我们单击绿色加号新增一个全局变量总数量“count”,变量值可以默认为空,也可以赋值,让count等于0。 ;;在弹出的“编辑文字”对话框中,单击“新增局部变量”即可新增一个局部变量,可以对局部变量重新命名和赋值,这个局部变量只在给文本赋值的时候有作用,其他的交互动作是访问不到这个局部变量的。 ;感谢您的观看

知识世界

Android中的全局变量与局部变量使用小结

主要介绍了Android中的全局变量与局部变量使用小结,全局变量顾名思义就是在整个的类中或者可在多个函数中调用的变量,也称为外部变量,局部变量则是特定过程或函数中可以访问的变量,需要的朋友可以参考下

weixin_38562130

局部变量 全局变量 堆栈总结

堆栈(stack)是内存中的一个连续的块。一个叫堆栈指针的寄存器(SP)指向堆栈的栈顶。堆栈的底部是一个固定地址。堆栈有一个特点就是,后进先出。也就是说,后放入的数据第一个取出

tianyukobe

c语言-全局变量和局部变量.cpp

c语言-全局变量和局部变量.cpp

小魚資源大雜燴

C语言全局/局部变量

这个工程里面的描述很简单。就是陈列了一个全局变量和一个局部变量。适合人群:刚开始C语言单片机编程的开发人员。对函数之间数据交互不太清楚的人。

钢先生
评论 18
收藏 已收藏
分享
返回顶部
P_T_P
C++ 语言 65,214 成员 250,514 内容