代码改变世界

编程珠玑第九章

2012-07-27 12:54  javaspring  阅读(138)  评论(0编辑  收藏  举报

1、内存访问(连续内存访问与跨页面访问内存的区别)

     注意在访问内存的时候,要注意内存的连续性,如果访问的内存不是连续的,那么程序的运行速度也会受到极大的影响

     例如访问一个二维数组时,先访问行,再访问列,能够减少页面调度次数,同时cache命中率也相对高些。

 

2、递归调用宏时,需要小心,宏中的某个参数被调用了多次以致数值发生了变化

      #define  Max(a,b)  ((a>b)?:(a):(b))   

     // Max(i++,j++),调用之后,i、j的值可能会增加两次

     //max(i++,func(j++)),调用之后,可能会导致函数func()被调用两次