a.一块内存,只一个线程连续操作多次(1000*1000*1000),执行加法多次,每个进程平均一次就是4-5ns,应该是命中L2
b.一块内存,2个线程(同一个cpu下)连续操作多次(不用原子操作),执行加法多次,每个进程平均一次操作就是12ns(单个其实是6ns)
c.一块内存,4个线程(同一个cpu下)连续操作多次(不用原子操作),执行加法多次,每个进程平均一次操作就是24ns(单个其实是6ns)
d.一块内存,1个线程(同一个cpu下)连续操作多次(用原子操作),执行加法多次,每个进程平均一次操作就是20ns(why,跟g比,还长?)
e.一块内存,2个线程(同一个cpu下)连续操作多次(用原子操作),执行加法多次,每个进程平均一次操作就是80ns(单个其实是40ns,上面是20ns,这里为啥40ns)
f.一块内存,4个线程(同一个cpu下)连续操作多次(用原子操作),执行加法多次,每个进程平均一次操作就是160ns(单个其实是40ns)
g. 20块内存,20个线程(同一个cpu下)连续操作多次(用原子操作),执行加法多次,每个进程平均一次操作就是13ns(单个其实是13ns)
n块内存,n个线程,各自连续操作多次(用原子操作+),一次约13ns(这个应该是命中L3, https://taohui.blog.csdn.net/article/details/82413977,看看这个文章,一次L3约12ns),n增加时间不变,不同变量应该不受原子lock影响
#include <sys/time.h>
#include <stdlib.h>
#i