当前位置: 首页 > 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工程师,专注基础和实战分享 ,欢迎咨询! &…...

label-studio的使用教程(导入本地路径)

文章目录 1. 准备环境2. 脚本启动2.1 Windows2.2 Linux 3. 安装label-studio机器学习后端3.1 pip安装(推荐)3.2 GitHub仓库安装 4. 后端配置4.1 yolo环境4.2 引入后端模型4.3 修改脚本4.4 启动后端 5. 标注工程5.1 创建工程5.2 配置图片路径5.3 配置工程类型标签5.4 配置模型5.…...

(十)学生端搭建

本次旨在将之前的已完成的部分功能进行拼装到学生端,同时完善学生端的构建。本次工作主要包括: 1.学生端整体界面布局 2.模拟考场与部分个人画像流程的串联 3.整体学生端逻辑 一、学生端 在主界面可以选择自己的用户角色 选择学生则进入学生登录界面…...

Opencv中的addweighted函数

一.addweighted函数作用 addweighted()是OpenCV库中用于图像处理的函数,主要功能是将两个输入图像(尺寸和类型相同)按照指定的权重进行加权叠加(图像融合),并添加一个标量值&#x…...

【项目实战】通过多模态+LangGraph实现PPT生成助手

PPT自动生成系统 基于LangGraph的PPT自动生成系统,可以将Markdown文档自动转换为PPT演示文稿。 功能特点 Markdown解析:自动解析Markdown文档结构PPT模板分析:分析PPT模板的布局和风格智能布局决策:匹配内容与合适的PPT布局自动…...

第一篇:Agent2Agent (A2A) 协议——协作式人工智能的黎明

AI 领域的快速发展正在催生一个新时代,智能代理(agents)不再是孤立的个体,而是能够像一个数字团队一样协作。然而,当前 AI 生态系统的碎片化阻碍了这一愿景的实现,导致了“AI 巴别塔问题”——不同代理之间…...

Spring Boot面试题精选汇总

🤟致敬读者 🟩感谢阅读🟦笑口常开🟪生日快乐⬛早点睡觉 📘博主相关 🟧博主信息🟨博客首页🟫专栏推荐🟥活动信息 文章目录 Spring Boot面试题精选汇总⚙️ **一、核心概…...

全面解析各类VPN技术:GRE、IPsec、L2TP、SSL与MPLS VPN对比

目录 引言 VPN技术概述 GRE VPN 3.1 GRE封装结构 3.2 GRE的应用场景 GRE over IPsec 4.1 GRE over IPsec封装结构 4.2 为什么使用GRE over IPsec? IPsec VPN 5.1 IPsec传输模式(Transport Mode) 5.2 IPsec隧道模式(Tunne…...

NXP S32K146 T-Box 携手 SD NAND(贴片式TF卡):驱动汽车智能革新的黄金组合

在汽车智能化的汹涌浪潮中,车辆不再仅仅是传统的交通工具,而是逐步演变为高度智能的移动终端。这一转变的核心支撑,来自于车内关键技术的深度融合与协同创新。车载远程信息处理盒(T-Box)方案:NXP S32K146 与…...

嵌入式学习笔记DAY33(网络编程——TCP)

一、网络架构 C/S (client/server 客户端/服务器):由客户端和服务器端两个部分组成。客户端通常是用户使用的应用程序,负责提供用户界面和交互逻辑 ,接收用户输入,向服务器发送请求,并展示服务…...

JS手写代码篇----使用Promise封装AJAX请求

15、使用Promise封装AJAX请求 promise就有reject和resolve了,就不必写成功和失败的回调函数了 const BASEURL ./手写ajax/test.jsonfunction promiseAjax() {return new Promise((resolve, reject) > {const xhr new XMLHttpRequest();xhr.open("get&quo…...