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

开发板中的内存压力测试,你了解多少?

1. 测试目的

内存压力测试的目的是评估开发板中的内存子系统性能和稳定性,以确保它能够满足特定的应用需求。开发板通常用于嵌入式系统、物联网设备、嵌入式智能家居等场景,这些场景对内存的要求通常比较高。

其内存压力测试的主要目的有:

1.对确定内存的可靠性:通过模拟高负载下的内存使用情况,可以检测内存中的错误和问题,并确定开发板是否能够在稳定的状态下长时间运行。这有助于确保系统的可靠性和数据安全性。

2.发现内存瓶颈:通过测试开发板在处理大量数据时的性能表现,可以评估内存访问速度、吞吐量、响应时间等性能指标,并确定系统在处理大量数据时的性能瓶颈所在。这有助于确定系统的性能极限,并采取相应的优化措施。

3.验证内存兼容性:不同类型的内存可能会影响开发板的性能和稳定性。通过内存压力测试可以验证不同类型的内存是否兼容,以确保内存与开发板的兼容性。

4.测试系统容错性:通过模拟异常情况下的内存使用情况,可以测试开发板在处理异常情况时的表现,并确定开发板能否在不影响数据完整性的情况下恢复正常工作。

2.1测试结果

在使用内存压力测试工具memtester测试内存72小时以上期间,未发现内存错误、异常等现象。内存模块在测试条件下稳定,循环测试中系统未出现无明显卡顿或崩溃现象。测试结果表明,系统能够在长时间高负载占用内存的工作环境下保持可靠性和稳定性,具有较高的抗压能力。

2. 测试原理

2.1memtester

Memtester是一种用于测试系统内存稳定性和可靠性的工具。它可以模拟各种内存负载情况,并检测和报告内存错误。

Memtester可以在Linux和其他类Unix系统上运行,并可以通过命令行或脚本进行控制。它可以测试内存的不同方面,包括内存容量、内存速度、内存类型、内存通道等。同时,它还可以测试系统的内存管理和内存分配机制,以确定系统是否能够有效地管理和分配内存。

使用Memtester进行内存测试时,需要指定测试的内存容量和测试的时间长度。测试过程中,Memtester会在内存中模拟各种负载情况,例如写入随机数据、重复写入相同数据、使用指定的模式写入数据等。在测试过程中,Memtester会检测内存中的错误,并将错误信息记录到日志文件中。

通过使用Memtester,可以有效地测试系统内存的稳定性和可靠性,以便确定系统是否能够在各种负载情况下正常运行。测试结果可以帮助开发人员识别和解决内存相关的问题,并优化系统的内存性能。

图3.1 演示程序

2.1.1测试方法

memtester工具使用命令格式为memtester [-p 内存物理起始地址] [测试内存大小B/K/M/G] [测试次数]。

命令格式不是固定的,可以省略部分。

ⅰ. 省略测试次数,则连续进行测试,直到手动结束

ⅱ. 省略内存物理起始地址,则由系统随机选择空闲内存测试

b. 使用方法

ⅰ. 对1G内存测试100次

./memtester 1G 100

ⅱ. 对2G内存进行连续测试

./memtester 1G 100

ⅲ. 从0x00010000地址开始测试1G内存100次

./memtester -p 0x10000 1G 100

3. 硬件准备

HD-G2L-IOT V2.2底板、HD-G2L-CORE V2.0核心板(2GB+8GB)、网线、Type-c数据线、12V电源适配器、UART模块、电脑主机。

4. 测试环境

图5.1 测试环境

5. 开始内存压力测试

根据测试目的,运行测试程序,申请1G内存大小,连续运行测试72小时以上。

图6.1

图6.2 视频播放

如图6.1所示,编写测试脚本运行memtester测试程序后先检测是否存在memtester进程,若有则杀掉进程,若无则根据用户输入时间校准评估板时间,最后输入测试时长(秒)开始内存压力测试,达到测试时长则结束测试。 

6. 结束内存压力测试

图7.1

图7.2

图7.3

图7.4 运行情况

如图7.1图7.2图7.3所示,memtester程序在运行了72小时30分钟后仍在运行测试,说明在此测试期间,持续高强度负载下,系统整体表现稳定,无明显卡顿或崩溃现象。内存压力测试159次后仍能够保持在稳定的水平。测试结果表明,系统能够在长时间内存压力测试的工作环境下保持可靠性和稳定性,具有较高的抗压能力。

7. 关于HD-G2L-IOT

7.1硬件参数

HD-G2L-IOT板载的外设功能:

  • 集成2路10M/100M/1000M自适应以太网接口

  • 集成Wi-Fi

  • 集成2路RS-232接口

  • 集成2路RS-485接口

  • 集成2路CAN-bus接口

  • 集成2路USB Host

  • 集成1路USB扩展4G模块接口(集成SIM卡接口)

  • 集成1路USB扩展5G模块接口(集成SIM卡接口)

  • 支持1路TF卡接口

  • 支持液晶显示接口(RGB信号)

  • 支持4线电阻触摸屏与电容屏接口

  • 1路MIPI DSI接口

  • 1路摄像头接口(MIPI CSI)

  • 支持音频(耳机、MiC、SPK)

  • 支持实时时钟与后备电池

  • 支持蜂鸣器与板载LED

  • 支持GPIO

  • 1路TTL调试串口

  • 直流+12V电源供电(宽压9~36V)

HD-G2L-CORE核心板硬件资源参数:

相关文章:

开发板中的内存压力测试,你了解多少?

1. 测试目的内存压力测试的目的是评估开发板中的内存子系统性能和稳定性,以确保它能够满足特定的应用需求。开发板通常用于嵌入式系统、物联网设备、嵌入式智能家居等场景,这些场景对内存的要求通常比较高。其内存压力测试的主要目的有:1.对确…...

MATLAB | 这些花里胡哨的热图怎么画

好早之前写过一个绘制相关系数矩阵的代码,但是会自动求相关系数,而且画出来的热图只能是方形,这里写一款允许nan值出现,任意形状的热图绘制代码,绘制效果如下: 如遇到bug请后台提出,并去gitee下…...

Java开发的一些编码建议

1、无论是类、方法、字段、变量,尽可能的限制他们的作用范围,可以避免出现不必要的错误;同时虚拟机也能有更大的优化空间。 2、错误越早发现越好,编译时发生错误比在运行时发生错误好。而且编译时错误能更好的定位问题所在。 这…...

【YOLOv8/YOLOv7/YOLOv5/YOLOv4/Faster-rcnn系列算法改进NO.59】引入ASPP模块

前言作为当前先进的深度学习目标检测算法YOLOv8,已经集合了大量的trick,但是还是有提高和改进的空间,针对具体应用场景下的检测难点,可以不同的改进方法。此后的系列文章,将重点对YOLOv8的如何改进进行详细的介绍&…...

C++STL set/multiset容器 构造和赋值 大小和交换 插入和删除 查找和统计

文章目录set/multiset容器1 set容器 基本概念2 set容器 构造和赋值3 set容器 大小和交换4 set容器 插入和删除5 set容器 查找和统计set/multiset容器 1 set容器 基本概念 简介: 所有元素都会在插入时会被自动排序,例如,在set容器放入元素1、…...

产品研发项目进度管理软件工具有哪些推荐?整理10款最佳进度管理软件

项目进度管理是确保项目按时完成的关键过程,使用合适的项目进度管理工具能确保帮助项目管理者实时了解和控制项目的进展情况,及时发现和解决问题,减少项目风险,提高项目效率和管理水平。这里将整理出国内外最受欢迎的10款项目进度…...

「ML 实践篇」分类系统:图片数字识别

目的:使用 MNIST 数据集,建立数字图像识别模型,识别任意图像中的数字; 文章目录1. 数据准备(MNIST)2. 二元分类器(SGD)3. 性能测试1. 交叉验证2. 混淆矩阵3. 查准率与查全率4. P-R 曲…...

从大专到测开,上海某字母站大厂的面试题,岗位是测开(25K*16)

简单介绍一句,大专出身,三年经验。跳了四次槽,面试了无数次,现在把自己的面试经验整理出来分享给大家,堪称必杀技! 1,一切从实际出发,对实际工作进行适当修饰 2,不会的简…...

【面试题】Python软件工程师能力评估试题(一)

文章目录前言应试者需知(一)Python 语言基础能力评估1、理解问题并完成代码:2、阅读理解代码,并在空白处补充完整代码:3、编写一个装饰器:exposer4、阅读代码并在空白处补充完整代码:5、自行用P…...

Java八股文(Java多线程面试题)

并行和并发的区别?(1)并行是指两个或者多个事件在同一时刻发生;而并发是指两个或多个事件在同一时间间隔发生;(2)并行是在不同实体上的多个事件,并发是在同一实体上的多个事件&#…...

小程序当前页面如何分享别的页面内容呢?

需求分析 因为功能的需要分为两点 他需要调转转发,并且有首页转发点击button按钮进行转发邀请好友帮忙助力,如何做到一个页面多种转发 如何区分,是button转发还剩右上角三个点转发呢? 通过onShareAppMessage()这个函数的事件…...

编写Java哪个编译器好

现在能够编写Java代码的工具简直不要太多,各种各样五花八门,但目前效率最高的还是Intellij Idea。但这个工具对于完全零基础的小白来说,第一次用起来是比较复杂的,因为它的功能太多了。这就好比你要学开车,如果上来就给…...

第十六章 Java为什么使用序列化

为何要指定serialVersionUID的值如果不指定显示serialVersionUID的值,jvm在序列化时会自动生成一个serialVersionUID,跟属性一起序列化,再进行持久化或者网络传输,在反序列化时,jvm会根据属性自动生成一个新版的serial…...

28岁小公司程序员,无车无房不敢结婚,要不要转行?

大家好,这里是程序员晚枫,又来分享程序员的职场故事了~ 今天分享的这位朋友叫小青,我认识他2年多了。以前从事的是土木行业,2年前找我咨询转行程序员的学习路线和职业规划后,通过自学加入了一家创业公司,成…...

出道即封神的ChatGPT,现在怎么样了?

从互联网的普及到智能手机,都让广袤的世界触手而及,如今身在浪潮中的我们,已深知其力。前阵子爆火的ChatGPT,不少人保持观望态度。现如今,国内关于ChatGPT的各大社群讨论,似乎沉寂了不少,现在怎…...

【计算机视觉】CNN 可视化算法

文章目录一、CAM算法1.1 概述1.2 CAM算法介绍二、Grad-CAM算法2.1 概述2.2 Guided Backpropagation2.3 Occlusion Sensitivity2.4 Grad-CAM 整体结构和效果2.5 Grad-CAM 实现细节一、CAM算法 1.1 概述 本文介绍 2016 年提出的 CAM (Class Activation Mapping) 算法&#xff0…...

自动抓取服务器巡检、登录、执行命令记录+备份脚本

文章目录 引抓取【巡检日志】语言&时区设置语言设置时区巡检脚本执行效果抓取【登录信息】登录脚本登录脚本低版本的last命令执行效果抓取【history记录】说明配置history授权日志文件显示时间戳持久化到日志未配置history的配置过history的执行脚本执行脚本...

如何用Python求解微分方程组

文章目录odeint简介示例odeint简介 scipy文档中将odeint函数和ode, comples_ode这两个类称为旧API,是scipy早期使用的微分方程求解器,但由于是Fortran实现的,尽管使用起来并不方便,但速度没得说,所以有的时候还挺推荐…...

【微信小程序】-- 自定义组件 - behaviors(三十九)

💌 所属专栏:【微信小程序开发教程】 😀 作  者:我是夜阑的狗🐶 🚀 个人简介:一个正在努力学技术的CV工程师,专注基础和实战分享 ,欢迎咨询! &…...

【微信小程序】-- 自定义组件 - 父子组件之间的通信(三十八)

💌 所属专栏:【微信小程序开发教程】 😀 作  者:我是夜阑的狗🐶 🚀 个人简介:一个正在努力学技术的CV工程师,专注基础和实战分享 ,欢迎咨询! &…...

使用docker在3台服务器上搭建基于redis 6.x的一主两从三台均是哨兵模式

一、环境及版本说明 如果服务器已经安装了docker,则忽略此步骤,如果没有安装,则可以按照一下方式安装: 1. 在线安装(有互联网环境): 请看我这篇文章 传送阵>> 点我查看 2. 离线安装(内网环境):请看我这篇文章 传送阵>> 点我查看 说明:假设每台服务器已…...

铭豹扩展坞 USB转网口 突然无法识别解决方法

当 USB 转网口扩展坞在一台笔记本上无法识别,但在其他电脑上正常工作时,问题通常出在笔记本自身或其与扩展坞的兼容性上。以下是系统化的定位思路和排查步骤,帮助你快速找到故障原因: 背景: 一个M-pard(铭豹)扩展坞的网卡突然无法识别了,扩展出来的三个USB接口正常。…...

ubuntu搭建nfs服务centos挂载访问

在Ubuntu上设置NFS服务器 在Ubuntu上,你可以使用apt包管理器来安装NFS服务器。打开终端并运行: sudo apt update sudo apt install nfs-kernel-server创建共享目录 创建一个目录用于共享,例如/shared: sudo mkdir /shared sud…...

工业安全零事故的智能守护者:一体化AI智能安防平台

前言: 通过AI视觉技术,为船厂提供全面的安全监控解决方案,涵盖交通违规检测、起重机轨道安全、非法入侵检测、盗窃防范、安全规范执行监控等多个方面,能够实现对应负责人反馈机制,并最终实现数据的统计报表。提升船厂…...

java 实现excel文件转pdf | 无水印 | 无限制

文章目录 目录 文章目录 前言 1.项目远程仓库配置 2.pom文件引入相关依赖 3.代码破解 二、Excel转PDF 1.代码实现 2.Aspose.License.xml 授权文件 总结 前言 java处理excel转pdf一直没找到什么好用的免费jar包工具,自己手写的难度,恐怕高级程序员花费一年的事件,也…...

macOS多出来了:Google云端硬盘、YouTube、表格、幻灯片、Gmail、Google文档等应用

文章目录 问题现象问题原因解决办法 问题现象 macOS启动台(Launchpad)多出来了:Google云端硬盘、YouTube、表格、幻灯片、Gmail、Google文档等应用。 问题原因 很明显,都是Google家的办公全家桶。这些应用并不是通过独立安装的…...

Unity | AmplifyShaderEditor插件基础(第七集:平面波动shader)

目录 一、👋🏻前言 二、😈sinx波动的基本原理 三、😈波动起来 1.sinx节点介绍 2.vertexPosition 3.集成Vector3 a.节点Append b.连起来 4.波动起来 a.波动的原理 b.时间节点 c.sinx的处理 四、🌊波动优化…...

Linux --进程控制

本文从以下五个方面来初步认识进程控制: 目录 进程创建 进程终止 进程等待 进程替换 模拟实现一个微型shell 进程创建 在Linux系统中我们可以在一个进程使用系统调用fork()来创建子进程,创建出来的进程就是子进程,原来的进程为父进程。…...

用机器学习破解新能源领域的“弃风”难题

音乐发烧友深有体会,玩音乐的本质就是玩电网。火电声音偏暖,水电偏冷,风电偏空旷。至于太阳能发的电,则略显朦胧和单薄。 不知你是否有感觉,近两年家里的音响声音越来越冷,听起来越来越单薄? —…...

力扣热题100 k个一组反转链表题解

题目: 代码: func reverseKGroup(head *ListNode, k int) *ListNode {cur : headfor i : 0; i < k; i {if cur nil {return head}cur cur.Next}newHead : reverse(head, cur)head.Next reverseKGroup(cur, k)return newHead }func reverse(start, end *ListNode) *ListN…...