CPU存在着自己的高速缓存。
在读取内存的时候,会将缓存读满(一般64bytes)。就会使得每次读取会多读,将附近的都读出来。
充分利用这个机制可以在算法选择上有着一定的优势。
如:
-
数组和链表的选择,因为数组在实现上使用的是连续的内存空间,就可以利用预读数组中的数据,所以访问效率越高。而链表在内存中并不是连续存储,就不可以。所以在读取操作多的时候选择数组,插入删除多的时候选择链表。
-
二位数组遍历,[x][y]数组x为外循环,y内循环更快。
CPU存在着自己的高速缓存。
在读取内存的时候,会将缓存读满(一般64bytes)。就会使得每次读取会多读,将附近的都读出来。
充分利用这个机制可以在算法选择上有着一定的优势。
如:
数组和链表的选择,因为数组在实现上使用的是连续的内存空间,就可以利用预读数组中的数据,所以访问效率越高。而链表在内存中并不是连续存储,就不可以。所以在读取操作多的时候选择数组,插入删除多的时候选择链表。
二位数组遍历,[x][y]数组x为外循环,y内循环更快。