提交 63a10a36 编写于 作者: R russelltao

add README

上级 9cb731e9
### traverse_2d_array
验证连续内存的二维数组是否采用顺序访问以致性能不同。array[i][j]性能优于array[j][i]
* 特别是C++程序中的数组相比python的list容器内存更加连续,故性能表现更优 *
### traverse_1d_array
验证cpu cache line批量载入缓存带来的性能提升时,traverse_2d_array存放了指针导致性能提升有上限。
traverse_1d_array一维数组没有存放8字节的指针,性能提升更大。
### branch_predict
验证了分支预测的作用
### cpu_migrate
不考虑多核时,该程序在循环中反复使用有限内存中的数据,缓存命中率非常高。
当开启多个线程时,由于发生了CPU迁移,导致缓存命中率下降,性能也有明显的下降。
\ No newline at end of file
# C++程序traverse_2d_array.cpp
# 1.C++程序traverse_2d_array.cpp
## 编译程序
### 安装编译依赖的软件
如Linux中需要安装gcc-c++,CentOS中可用yum install gcc-c++安装,Ubuntu中可用apt-get install gcc-c++
如Linux中需要安装gcc-c++,CentOS中可用`yum install gcc-c++`安装,Ubuntu中可用`apt-get install gcc-c++`
### 编译程序
`g++ traverse_2d_array.cpp -o traverse_2d_array`
### 运行验证
......@@ -11,7 +11,7 @@
`./traverse_2d_array -s`
### 使用perf验证缓存命中率
#### 使用array[i][j]遍历数组
perf stat -e cache-references,cache-misses,instructions,cycles,L1-dcache-load-misses,L1-dcache-loads ./traverse_2d_array -f
`perf stat -e cache-references,cache-misses,instructions,cycles,L1-dcache-load-misses,L1-dcache-loads ./traverse_2d_array -f`
#### 使用array[j][i]遍历数组
perf stat -e cache-references,cache-misses,instructions,cycles,L1-dcache-load-misses,L1-dcache-loads ./traverse_2d_array -s
# python程序traverse_2d_array.py
\ No newline at end of file
`perf stat -e cache-references,cache-misses,instructions,cycles,L1-dcache-load-misses,L1-dcache-loads ./traverse_2d_array -s`
# 2.python程序traverse_2d_array.py
\ No newline at end of file
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册