当前位置: 首页 > news >正文

安卓使用memtester进行内存压力测试

memteser简介

memtester 是一个用于测试内存可靠性的工具。
它可以对计算机的内存进行压力测试,以检测内存中的错误,例如位翻转、随机存取错误等。memtester 可以在不同的操作系统上运行,并且可以针对不同大小的内存进行测试。

下载源码

memtester官方地址
https://pyropus.ca./software/memtester/
最新源码下载版本是4.6.0
下载源码解压后文件比较简单:
memtester源码目录

内置到安卓SDK

把这个文件夹放到android sdk下的externel中重命名为memtester
创建Android.mk放memtester中

LOCAL_PATH:= $(call my-dir)include $(CLEAR_VARS)LOCAL_SRC_FILES:= \memtester.c \tests.cLOCAL_MODULE:= memtester
LOCAL_MODULE_TAGS := optional
include $(BUILD_EXECUTABLE)

编译

在sdk中

  1. source build/envsetup.sh
  2. lunch xxx
    这里的xxx不同的平台不一样.
  3. mmm external/memtester/

编译出错

external/memtester/memtester.c:143:22: error: using the result of an assignment as a condition without parentheses [-Werror,-Wparentheses]if (env_testmask = getenv("MEMTESTER_TEST_MASK")) {~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
external/memtester/memtester.c:143:22: note: place parentheses around the assignment to silence this warningif (env_testmask = getenv("MEMTESTER_TEST_MASK")) {^(                                           )
external/memtester/memtester.c:143:22: note: use '==' to turn this assignment into an equality comparisonif (env_testmask = getenv("MEMTESTER_TEST_MASK")) {^==
external/memtester/memtester.c:314:75: error: arithmetic on a pointer to void is a GNU extension [-Werror,-Wpointer-arith]aligned = (void volatile *) ((size_t) buf & pagesizemask) + pagesize;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^
external/memtester/memtester.c:367:67: error: arithmetic on a pointer to void is a GNU extension [-Werror,-Wpointer-arith]aligned = (void volatile *) ((size_t) buf & pagesizemask) + pagesize;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^
external/memtester/memtester.c:239:9: error: variable 'memshift' is used uninitialized whenever switch default is taken [-Werror,-Wsometimes-uninitialized]default:^~~~~~~
external/memtester/memtester.c:243:55: note: uninitialized use occurs herewantbytes_orig = wantbytes = ((size_t) wantraw << memshift);^~~~~~~~
external/memtester/memtester.c:121:29: note: initialize the variable 'memshift' to silence this warningint memfd, opt, memshift;

在Android.mk中添加上一行

  LOCAL_CFLAGS += -Wno-parentheses \-Wno-pointer-arith \-Wno-sometimes-uninitialized

编译成功后生成 sdkout/xx/system/bin/memtester

放到安卓设备上

把memtester放到安卓设备上
adb root
adb remount
adb push memtester /system/bin/

memtester测试指令

放到设备上后,就可以进行测试了
以下是一些常见的 memtester 测试命令示例:

  1. 基本测试:
    memtester <内存大小> <测试次数>:这是最基本的用法,比如 memtester 1G 10,表示测试 1GB 的内存,测试 10 次。如果不指定测试次数,memtester 会一直测试下去,直到你手动中断(通常使用 Ctrl + C)。
  2. 指定内存范围测试(适用于特定硬件开发或深入排查问题):
    memtester -p <起始物理地址(十六进制)> <内存大小>:这种方式可以测试特定物理地址开始的一段内存。例如,如果要测试从物理地址 0x10000000 开始的 512MB 内存,可以使用 memtester -p 0x10000000 512M。请注意,这种测试可能会覆盖正在使用的系统内存或其他应用程序的内存,导致系统崩溃,所以要谨慎使用。
  3. 结合其他参数进行测试:
    memtester -d <设备文件>:通过 -d 参数指定一个设备文件来进行测试。默认情况下,memtester 会使用 /dev/mem 设备文件,但在某些特殊情况下,你可能需要指定其他的内存映射设备文件。例如,如果你的系统中有一个特殊的内存设备 /dev/my_memory_device,你可以使用 memtester -d /dev/my_memory_device 100M 5 来测试该设备对应的 100MB 内存,测试 5 次。
    作者:帅得不敢出门

相关文章:

  • Python绘图库----turtle(海龟)
  • Sui Bridge今日正式上线Sui主网
  • Recaptcha2 图像识别 API 对接说明
  • 在矩池云使用 Llama-3.2-11B-Vision 详细指南
  • 开放式耳机究竟是不是智商税?百元蓝牙耳机2024推荐指南
  • 常见的计算机网络协议
  • Next.js 14 使用 react-md-editor 编辑器 并更改背景颜色
  • VUE a-table 动态拖动修改列宽+固定列
  • Unity XR 环境检测
  • Trimble隧道测量软件为您解锁新深度
  • 车视界系统小程序的设计
  • 【DCGAN 生成漫画头像】
  • 检查一个CentOS服务器的配置的常用命令
  • Android常用C++特性之std::none_of
  • springboot实战学习(10)(ThreadLoacl优化获取用户详细信息接口)(重写拦截器afterCompletion()方法)
  • JS 中的深拷贝与浅拷贝
  • 【140天】尚学堂高淇Java300集视频精华笔记(86-87)
  • angular2 简述
  • cookie和session
  • es6
  • Javascript Math对象和Date对象常用方法详解
  • Java的Interrupt与线程中断
  • Laravel 菜鸟晋级之路
  • Logstash 参考指南(目录)
  • mongodb--安装和初步使用教程
  • MySQL主从复制读写分离及奇怪的问题
  • October CMS - 快速入门 9 Images And Galleries
  • React系列之 Redux 架构模式
  • SpiderData 2019年2月25日 DApp数据排行榜
  • spring boot下thymeleaf全局静态变量配置
  • Vue UI框架库开发介绍
  • Vue 动态创建 component
  • web标准化(下)
  • 从零开始学习部署
  • 服务器从安装到部署全过程(二)
  • 嵌入式文件系统
  • 融云开发漫谈:你是否了解Go语言并发编程的第一要义?
  • 使用 Docker 部署 Spring Boot项目
  • 听说你叫Java(二)–Servlet请求
  • 新书推荐|Windows黑客编程技术详解
  • 追踪解析 FutureTask 源码
  • FaaS 的简单实践
  • ​14:00面试,14:06就出来了,问的问题有点变态。。。
  • ​水经微图Web1.5.0版即将上线
  • ​业务双活的数据切换思路设计(下)
  • #我与Java虚拟机的故事#连载04:一本让自己没面子的书
  • #预处理和函数的对比以及条件编译
  • $().each和$.each的区别
  • (13):Silverlight 2 数据与通信之WebRequest
  • (超简单)构建高可用网络应用:使用Nginx进行负载均衡与健康检查
  • (九)One-Wire总线-DS18B20
  • (力扣)1314.矩阵区域和
  • (面试必看!)锁策略
  • (四)JPA - JQPL 实现增删改查
  • (贪心) LeetCode 45. 跳跃游戏 II