美文网首页
有意思的题目

有意思的题目

作者: 拿拿guardian | 来源:发表于2020-06-10 18:13 被阅读0次

    矩阵按行遍历和按列遍历哪个效率高?

    按行遍历效率高。

    原因

    1.二维数组的内存地址是连续的,当前行的尾与下一行的头相邻。
    2.现代计算机,在CPU与内存之间还有一种存储机制,那就是CPU缓存(cache)。CPU缓存的容量比内存小的多但是交换速度却比内存要快得多。缓存的出现主要是为了解决CPU运算速度与内存读写速度不匹配的矛盾,因为CPU运算速度要比内存读写速度快很多,这样会使CPU花费很长时间等待数据到来或把数据写入内存。
    3.访问数组元素时,CPU不会每次只从内存中读取一个元素,而是读取一个区域的元素。假设二维数组的大小为(10 x 10),访问第一个元素时,CPU也会读取它的相邻元素,因为这个数组比较小,CPU一次就可以把所有元素缓存,因此无论是按行访问数组还是按列访问数组,CPU访问主存的数量都相同。随着数组元素越来越多,CPU缓存一次只能读取数组不到一行的数据,因此按列访问元素时每访问一个元素都要访问内存,因此速度就会慢很多。

    相关文章

      网友评论

          本文标题:有意思的题目

          本文链接:https://www.haomeiwen.com/subject/zywptktx.html