Linux下内存性能测试

  • 简介
    • 下载并解压
    • 编译
    • 运行
    • 运行结果
    • 结果分析

简介

Stream测试是内存测试中业界公认的内存带宽性能测试基准工具,stream由Virginia University提供,通过生成四种不同模式下的内存读写操作,用于测试高性能计算机的内存带宽。 现代计算机中都是用缓存技术,为了保证测试正确反映计算机内存的读写性能,测试中使用的数据量应远大于缓存大小。

下载并解压

Stream

tar -xvf stream.tar.gz

编译

根据使用的平台选择不同的gcc编译器。

# 参数介绍
# -mtune=native -march=native 针对CPU指令的优化,此处由于编译机即运行机器。故采用native的优化方法。
# -O3 编译器编译优化级别。
# -mcmodel=medium 当单个Memory Array Size 大于2GB时需要设置此参数(小于2GB时设置无效)。
# -fopenmp 适应多处理器环境,开启后,程序默认线程为CPU线程数。也可以在运行前设置进程数
# 设置方法: export OMP_NUM_THREADS=x  x为你想设置的线程数
# -DSTREAM_ARRAY_SIZE=100000000:这个参数是对测试结果影响最大,也是最需要关注的一个参数,指定计算中a[],b[],c[]数组的大小。
# -DNTIMES=40:执行的次数,并且从这些结果中选最优值
gcc -mtune=native -march=native -O3 -mcmodel=medium  -fopenmp -DSTREAM_ARRAY_SIZE=100000000 -DNTIMES=40 stream.c -o stream.o

运行

./stream.o

运行结果

结果分析

Copy:是复制操作,即从内存单元中读取一个数,并复制到其他内存单元中,两次访问内存操作。
Scale:是乘法操作,即从内存单元中读取一个数,与常数相乘,得到的记过存到其他内存单元,两次访问内存操作。
Add:是加法操作,从两个内存单元中分别读取两个数,将其进行加法操作后,得到的结果写入另一个内存单元中,3次访问内存操作。
Triad:是前面三种的结合,先从内存中读取一个数,与一个常数相乘得到一个乘积,然后从另一个内存单元中读取一个数与刚才乘积结果相加,得到的结果写入内存。3次访问内存操作。

测试结果一般的规律是Add > Triad > Copy > Scale。一次Add操作需要访问三次内存(两个读操作,一个写操作),Triad操作也需要三次访问内存, Copy和Scale操作需要两次访问内存。单位操作内,访问内存次数越多,越能够掩盖访存延迟,带宽越大。

linux下内存性能测试工具STREAM相关推荐

  1. Linux下内存检测工具:asan

    Linux下内存检测工具:asan ASAN(Address-Sanitizier)早先是LLVM中的特性,后被加入GCC 4.8,在GCC 4.9后加入对ARM平台的支持.因此GCC 4.8以上版本 ...

  2. Linux下内存泄露工具

    概述 内存泄露(memory leak)指由于疏忽或错误造成程序未能释放已经不再使用的内存的情况,在大型的.复杂的应用程序中,这时就出现了内存泄露.尽管优秀的编程实践可以确保最少的泄露,但是根据经验, ...

  3. Linux如何安装iperf软件,Linux 下网络性能测试工具 iperf 的安装和使用

    很久没写文章,iperf 也一直有用,感受不错就记录一下html 说明: OS :CentOS 6.4 x86_64 Server: 192.168.100.55 Client: 192.168.10 ...

  4. linux下 C++性能测试工具 gprof 和 gprof2dot

    http://www.4ucode.com/Study/Topic/1909519 http://coolaj86.info/articles/super-simple-gprof.html http ...

  5. arm linux下交叉编译valgrind工具进行内存泄露检测和性能分析

    C/C++等底层语言在提供强大功能及性能的同时,其灵活的内存访问也带来了各种纠结的问题.如果crash的地方正是内存使用错误的地方,说明你人品好.如果crash的地方内存明显不是consistent的 ...

  6. Linux下内存使用率、CPU使用率、以及运行原理-转

    Linux下内存使用率.CPU使用率.以及运行原理 Linux下怎样查看机器配置啊?cpu/内存/硬盘 dmesg 显示开机信息.kernel会将开机信息存储在ring buffer中.您若是开机时来 ...

  7. Linux Wi-Fi连接工具,Linux下Wi-Fi配置工具2

    上回说到,linux下面的Wi-Fi配置工具,说是江湖多事,风起云涌...嗯,这回是真的要动手配置了.各种麻烦啊,想死的心都有了有木有啊. 尝试用iwconfig 话说上回说用iwconfig配置Wi ...

  8. Linux下C++开发工具介绍

    概述     就C++开发工具而言,与Windows下微软(VC, VS2005等)一统天下相比,Linux/Unix下C++开发,可谓五花八门,各式各样.Emacs, vi, eclipse, an ...

  9. linux查看设备内存代码,Linux下内存查看命令(示例代码)

    在Linux下面,我们常用top命令来查看系统进程,top也能显示系统内存.我们常用的Linux下查看内容的专用工具是free命令. Linux下内存查看命令free详解: 在Linux下查看内存我们 ...

最新文章

  1. [云炬创业管理笔记]第五章打磨最有效的商业模式测试2
  2. Linux cal日历指令
  3. Zookeeper 使用
  4. 如何实现一个教师与学生教学辅助平台?
  5. python 中调用shell命令
  6. vue-router 路由嵌套显示不出来_45. Vue路由vuerouter的基本使用
  7. 【Flink】Flink SQL 报错 ClassCastException: VarCharType cannot be cast to RowType
  8. 会话和连接的区别_websocket和ajax区别,只有这5点不同
  9. Uva 437 - The Tower of Babylon(DP)
  10. adb工具构成及原理
  11. Java带有效期的Map
  12. js中reduce()方法使用
  13. 如何取消Idea里面的中文语法检查
  14. python3 append的用法_python中append的用法
  15. android获取版本信息、屏幕信息和设备编号
  16. 电脑技术分享:电脑怎样录制桌面视频
  17. 音视频播放疑难杂症分析和解决思路
  18. html5 canvas画椭圆形
  19. RAKE(快速自动关键字抽取)算法原理与实现
  20. 腾讯云windows server搭建valheim(英灵神殿)服务器

热门文章

  1. 【ffmpeg】windows上用命令行批量将.flac格式转换为.wav等格式
  2. 农村娃蔡东青的创业秘籍:800元变25亿 (1)
  3. 字符串逆序 - 多种方法实现
  4. 生成神经对抗网络(GAN)的基本认识及应用
  5. php的strcmp函数,php中strcmp函数用法
  6. 小视频app源码无障碍服务实现自动跳过APP启动页广告
  7. 计算机网络-物理层、MAC层
  8. MAX SDK网格专题
  9. BouncingBallView 碰撞的小球
  10. Day6:Linux中文件权限及网络设置