static局部变量对性能的影响

http://ffmpeg.blogbus.com/《上xvid 代码的几个小bug   -[视频研究]》一文提到的问题:
1. idct.c中void idct_int32(short *const block)函数

定义了几个中间变量 X0,X1,X2,X3,X4,X5...X8
变量类型使用了 static long

结果虽然不会出错,但是影响性能,因为static 变量在退出函数后还需要保留该变量的值,增加了运算量,而非static变量,则可以通过编译

器优化,能使该变量为寄存器变量,减少内存访问的时间。本人测试了2000帧QVGA(320x240)图像,其中static变量的idct耗时8.6s,而非

static的只要5.3s,可见对效率影响挺大。

------------------------------------

对于static局部变量影响性能的问题,以前没有太多关注。

一般而言,局部变量设置为static,主要应该用于保存跨过程调用的状态。基于上面的性能因素,编程时不应把此类变量同时用作频繁使用的变量。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值