优化本地变量和指针型参数在Python Matplotlib中的使用
(3)按数据类型的长度排序本地变量。当编译器分配给本地变量空间时,它们的顺序与源代码中声明的顺序一致。为了提高性能,应将长的变量放在短的变量前面。这样第一个变量对齐后,其他变量会连续存放,且无需填充字节就能自然对齐。有些编译器不会自动调整变量顺序,有些编译器无法生成4字节对齐的栈,所以4字节变量可能不会对齐。以下示例演示了本地变量声明的重新排序:
不好的代码,普通顺序:
short ga, gu, gi;
long foo, bar;
double x, y, z[3];
char a, b;
float baz;
推荐的代码,改进顺序:
double z[3];
double x, y;
long foo, bar;
float baz;
short ga, gu, gi;
(4)把频繁使用的指针型参数拷贝到本地变量。避免在函数中频繁使用指针型参数指向的值,因为编译器不知道指针之间是否存在冲突,不能优化指针型参数的数据存放,这会占用内存带宽。注意,很多编译器有“假设不冲突”优化开关,这允许编译器假设两个不同的指针总是有不同的内容,从而不用把指针型参数保存到本地变量。否则,请在函数一开始就将指针指向的数据保存到本地变量,如果需要,在函数结束前将其拷贝回去。
341.17KB
文件大小:
评论区