当前位置: 首页 > 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 次。
    作者:帅得不敢出门

相关文章:

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

memteser简介 memtester 是一个用于测试内存可靠性的工具。 它可以对计算机的内存进行压力测试&#xff0c;以检测内存中的错误&#xff0c;例如位翻转、随机存取错误等。memtester 可以在不同的操作系统上运行&#xff0c;并且可以针对不同大小的内存进行测试。 下载源码 m…...

Dave Cheney: Go语言之禅

本篇内容是根据2020年3月份The Zen of Go音频录制内容的整理与翻译, Dave Cheney 讲述了 Go 之禅&#xff08;编写简单、可读、可维护的 Go 代码的十个工程价值&#xff09;。是什么让 Go 代码变得优秀&#xff1f;编写 Go 代码时&#xff0c;我们应该牢记哪些指导原则&#x…...

SpringMVC源码-AbstractUrlHandlerMapping处理器映射器将实现Controller接口的方式定义的路径存储进去

DispatcherServlet的initStrategies方法用来初始化SpringMVC的九大内置组件 initStrategies protected void initStrategies(ApplicationContext context) {// 初始化 MultipartResolver:主要用来处理文件上传.如果定义过当前类型的bean对象&#xff0c;那么直接获取&#xff0…...

满填充透明背景二维码生成

前几天项目上线的时候发现一个问题&#xff1a;通过Hutool工具包生成的二维码在内容较少时无法填满(Margin 已设置为 0)给定大小的图片。因此导致前端在显示二维码时样式异常。 从图片中我们可以看到&#xff0c;相同大小的图片&#xff0c;留白内容是不一样的。其中上半部分…...

Python | Leetcode Python题解之第452题用最少数量的箭引爆气球

题目&#xff1a; 题解&#xff1a; class Solution:def findMinArrowShots(self, points: List[List[int]]) -> int:if not points:return 0points.sort(keylambda balloon: balloon[1])pos points[0][1]ans 1for balloon in points:if balloon[0] > pos:pos balloo…...

代码随想录 | Day26 | 二叉树:二叉搜索树中的插入操作删除二叉搜索树中的节点修剪二叉搜索树

代码随想录 | Day26 | 二叉树&#xff1a;二叉搜索树中的插入操作&&删除二叉搜索树中的节点&&修剪二叉搜索树 主要学习内容&#xff1a; 二叉搜索树的插入删除操作 701.二叉搜索树中的插入操作 701. 二叉搜索树中的插入操作 - 力扣&#xff08;LeetCode&…...

使用Apifox创建接口文档,部署第一个简单的基于Vue+Axios的前端项目

前言 在当今软件开发的过程中&#xff0c;接口文档的创建至关重要&#xff0c;它不仅能够帮助开发人员更好地理解系统架构&#xff0c;还能确保前后端开发的有效协同。Apifox作为一款集API文档管理、接口调试、Mock数据模拟为一体的工具&#xff0c;能够大幅度提高开发效率。在…...

TCP的第三次握手没有回复,会出现哪些问题现象

从三次握手的一开始来讲&#xff0c;刚开始客户端和服务器都处于close状态 这里不能是2次握手的原因就在于&#xff0c;服务器端即女孩子&#xff0c;无法确认客户端即男孩子&#xff0c;是否已经收到了&#xff0c;我也愿意建立连接即我也爱你&#xff0c;这一条最终确认的信息…...

【工具】arxiv_latex_cleaner 去除latex注释

https://github.com/google-research/arxiv-latex-cleaner/issues/24 文章目录 1.修改编码2.如何安装2.1.打包2.2.安装 3.测试功能 注意&#xff1a;需要创建python3.9的环境 1.修改编码 官方提供的arxiv_latex_cleaner的编码格式是有问题的&#xff0c;见这里。这个有位朋友说…...

macOS开发环境配置与应用开发

一、macOS开发环境配置 1. 安装Xcode Xcode 是Apple官方开发环境工具&#xff0c;用于macOS、iOS、watchOS和tvOS应用开发。它集成了代码编辑、编译、调试、性能分析、界面设计等功能。 下载与安装&#xff1a; 打开 App Store&#xff0c;搜索“Xcode”。 点击安装&#xff…...

15分钟学 Python :编程工具 Idea 和 vscode 中配置 Python ( 补充 )

编程工具配置 Python 在 IDE 和 VSCode 中 在编程学习的过程中&#xff0c;选择合适的开发工具至关重要。本文将详细介绍在两种流行的IDE&#xff08;IntelliJ IDEA 和 Visual Studio Code&#xff09;中如何配置Python环境&#xff0c;帮助你更高效地进行Python开发。 一、编…...

MyBatis 如何实现延迟加载?深度探讨 MyBatis 的延迟加载:如何优化数据访问效率

在当今的应用程序开发中&#xff0c;尤其是与数据库交互时&#xff0c;性能成为了重中之重。频繁的数据库访问会导致响应时间变慢&#xff0c;甚至影响用户体验。为了优化数据访问&#xff0c;MyBatis 提供了延迟加载&#xff08;Lazy Loading&#xff09;的强大功能。本文将详…...

springboot系列--web相关知识探索三

一、前言 web相关知识探索二中研究了请求是如何映射到具体接口&#xff08;方法&#xff09;中的&#xff0c;本次文章主要研究请求中所带的参数是如何映射到接口参数中的&#xff0c;也即请求参数如何与接口参数绑定。主要有四种、分别是注解方式、Servlet API方式、复杂参数、…...

AI冲击下的编程职业未来:你缺的不是技术,而是跨学科思维!

随着AIGC技术&#xff08;如ChatGPT、MidJourney、Claude等大语言模型&#xff09;的不断进化&#xff0c;AI辅助编程工具迅速普及&#xff0c;程序员的工作方式正在经历前所未有的转型。代码自动补全、智能化代码生成等功能大幅提升了工作效率&#xff0c;但与此同时&#xff…...

是否是 2 的幂次方

给你一个整数 n&#xff0c;请你判断该整数是否是 2 的幂次方。如果是&#xff0c;返回 true &#xff1b;否则&#xff0c;返回 false 。 如果存在一个整数 x 使得 n 2x &#xff0c;则认为 n 是 2 的幂次方。 示例 1&#xff1a; 输入&#xff1a;n 1 输出&#xff1a;tr…...

音视频入门

一个视频&#xff0c;一秒内普遍大于等于25帧。 入门知识&#xff1a; 1.帧&#xff0c;一张画面就是一帧。一个视频就是由许许多多帧组成的。 帧率&#xff0c;单位时间内帧的数量。单位&#xff1a;帧/秒 或 fps。 分类&#xff1a;I帧&#xff0c;P帧&#xff0c;B帧 I…...

C++随心记 续一

C中的模板 在其它语言中如Java或者C#中可能叫做泛型&#xff0c;在C中为模板&#xff0c;泛型的限制通常比模板多。模板可以解决多次的代码重复问题&#xff0c;如以下场景 #include <iostream> #include <string>void print(int value) {std::cout << val…...

消息中间件:RabbitMQ

消息中间件&#xff1a;RabbitMQ 前言安装Window安装Linux安装 管理页面什么是RabbitMQ&#xff1f;入门基本概念简单队列工作队列&#xff08;Work Queues&#xff09;发布/订阅&#xff08;Publish/Subscribe&#xff09;临时队列 路由&#xff08;Routing&#xff09;主题&a…...

sql-labs:42~65

less42&#xff08;单引号闭合、报错回显&#xff09; login_useradmin login_password123 and if(11,sleep(2),1) # # 单引号闭合 ​ login_useradmin login_password123and updatexml(1,concat(0x7e,database(),0x7e),1)# # 报错回显…...

KaTeX.js渲染数学公式

什么是KaTeX.js ? KaTeX 是一个集成速度快且功能丰富的数学公式渲染库&#xff0c;专为 Web 设计。它由 Khan Academy 开发&#xff0c;提供接近印刷品质的数学公式展示&#xff0c;同时保持与浏览器的高效互动性。KaTeX 特点包括快速渲染速度、高质量的输出、独立运行、跨平…...

css实现圆环展示百分比,根据值动态展示所占比例

代码如下 <view class""><view class"circle-chart"><view v-if"!!num" class"pie-item" :style"{background: conic-gradient(var(--one-color) 0%,#E9E6F1 ${num}%),}"></view><view v-else …...

前端倒计时误差!

提示:记录工作中遇到的需求及解决办法 文章目录 前言一、误差从何而来?二、五大解决方案1. 动态校准法(基础版)2. Web Worker 计时3. 服务器时间同步4. Performance API 高精度计时5. 页面可见性API优化三、生产环境最佳实践四、终极解决方案架构前言 前几天听说公司某个项…...

【磁盘】每天掌握一个Linux命令 - iostat

目录 【磁盘】每天掌握一个Linux命令 - iostat工具概述安装方式核心功能基础用法进阶操作实战案例面试题场景生产场景 注意事项 【磁盘】每天掌握一个Linux命令 - iostat 工具概述 iostat&#xff08;I/O Statistics&#xff09;是Linux系统下用于监视系统输入输出设备和CPU使…...

《通信之道——从微积分到 5G》读书总结

第1章 绪 论 1.1 这是一本什么样的书 通信技术&#xff0c;说到底就是数学。 那些最基础、最本质的部分。 1.2 什么是通信 通信 发送方 接收方 承载信息的信号 解调出其中承载的信息 信息在发送方那里被加工成信号&#xff08;调制&#xff09; 把信息从信号中抽取出来&am…...

让AI看见世界:MCP协议与服务器的工作原理

让AI看见世界&#xff1a;MCP协议与服务器的工作原理 MCP&#xff08;Model Context Protocol&#xff09;是一种创新的通信协议&#xff0c;旨在让大型语言模型能够安全、高效地与外部资源进行交互。在AI技术快速发展的今天&#xff0c;MCP正成为连接AI与现实世界的重要桥梁。…...

如何理解 IP 数据报中的 TTL?

目录 前言理解 前言 面试灵魂一问&#xff1a;说说对 IP 数据报中 TTL 的理解&#xff1f;我们都知道&#xff0c;IP 数据报由首部和数据两部分组成&#xff0c;首部又分为两部分&#xff1a;固定部分和可变部分&#xff0c;共占 20 字节&#xff0c;而即将讨论的 TTL 就位于首…...

是否存在路径(FIFOBB算法)

题目描述 一个具有 n 个顶点e条边的无向图&#xff0c;该图顶点的编号依次为0到n-1且不存在顶点与自身相连的边。请使用FIFOBB算法编写程序&#xff0c;确定是否存在从顶点 source到顶点 destination的路径。 输入 第一行两个整数&#xff0c;分别表示n 和 e 的值&#xff08;1…...

RabbitMQ入门4.1.0版本(基于java、SpringBoot操作)

RabbitMQ 一、RabbitMQ概述 RabbitMQ RabbitMQ最初由LShift和CohesiveFT于2007年开发&#xff0c;后来由Pivotal Software Inc.&#xff08;现为VMware子公司&#xff09;接管。RabbitMQ 是一个开源的消息代理和队列服务器&#xff0c;用 Erlang 语言编写。广泛应用于各种分布…...

在鸿蒙HarmonyOS 5中使用DevEco Studio实现企业微信功能

1. 开发环境准备 ​​安装DevEco Studio 3.1​​&#xff1a; 从华为开发者官网下载最新版DevEco Studio安装HarmonyOS 5.0 SDK ​​项目配置​​&#xff1a; // module.json5 {"module": {"requestPermissions": [{"name": "ohos.permis…...

tomcat入门

1 tomcat 是什么 apache开发的web服务器可以为java web程序提供运行环境tomcat是一款高效&#xff0c;稳定&#xff0c;易于使用的web服务器tomcathttp服务器Servlet服务器 2 tomcat 目录介绍 -bin #存放tomcat的脚本 -conf #存放tomcat的配置文件 ---catalina.policy #to…...