第三章 UT单元测试——CPU与内存使用率限制
系列文章目录
第一章 UT单元测试——GoogleTest通用构建说明
第二章 UT单元测试——GTest框架实例
第三章 UT单元测试——CPU与内存使用率限制
文章目录
- 系列文章目录
- 前言
- 一、环境配置
- 二、使用步骤
- 1.添加待测源码
- 2.编译待测源码
- 3.添加自动化脚本
- 4.测试
- 5.运行结果
- 总结
前言
前两章介绍了GTest框架的构建和实例,笔者在测试过程中经常遇到CPU或是内存跑满的情况,现将解决办法整理于此。
一、环境配置
本文使用Linux环境。(后续补充)
二、使用步骤
1.添加待测源码
main.cpp(示例):
#include <iostream>#define MAX_MEM_SIZE 1.5*1024*1024*1024int main(int argc, char **argv) {int i;char* p;fprintf(stdout, "assigning memory...");p = (char *) malloc(MAX_MEM_SIZE);fprintf(stdout, "assigned memory to p @ %lx\n", (int64_t) p);for(i=0;i<MAX_MEM_SIZE;i++){p[i] = i;}fprintf(stdout, "writen memory to p @ %lx, p[0]=%d\n", (int64_t) p, p[0]);getchar();free(p);fprintf(stdout, "released memory from p @ %lx\n", (int64_t) p);return 0;
}
2.编译待测源码
g++ -o main main.cpp
3.添加自动化脚本
run.sh:
# check for root
if [ x$(id -u) != x0 ]; thenecho Authorizing ...printf -v cmd_str '%q ' "$0" "$@"exec sudo su -c "$cmd_str"
elseecho Authorized
fiecho Creating control group for memory:test ...
if [ ! -d "/sys/fs/cgroup/memory/test" ]; thenmkdir /sys/fs/cgroup/memory/test
fiecho Writing memory limitation ...
echo 512M>/sys/fs/cgroup/memory/test/memory.limit_in_bytesecho Checking memory limitation ...
echo Limit=$(cat /sys/fs/cgroup/memory/test/memory.limit_in_bytes)echo Setting CPU limitation ...
# enable job control which is by default turned off in non-interactive mode
set -o monitor
cpulimit -e main -l 50 &
# disable job control
set +o monitor
echo $(jobs -l)echo Launching program ...
echo ============================================
cgexec -g memory:test mainecho ============================================
echo Exiting program ...
echo $(jobs -l)
set -o monitor
fg 1
exit 0
4.测试
README.md:
A simple test case for cpu & memory limitation.Linux command:
1. chmod +x run.sh
2. ./run.sh
5.运行结果
测试结果待补充。
总结
以上就是今天要讲的内容,本文仅仅简单介绍了CPU与内存的限制,而在实际测试中需要根据实际情况添加更多限制和约束,例如磁盘、网络使用率等。
第三章 UT单元测试——CPU与内存使用率限制相关推荐
- 第二章 UT单元测试——GTest框架实例
系列文章目录 第一章 UT单元测试--GoogleTest通用构建说明 第二章 UT单元测试--GTest框架实例 文章目录 系列文章目录 前言 一.环境配置 二.使用步骤 1.添加待测源码 2.修改 ...
- 第一章 UT单元测试——GoogleTest通用构建说明
系列文章目录 第一章 UT单元测试--GoogleTest通用构建说明 第二章 UT单元测试--GTest框架实例 文章目录 系列文章目录 前言 GoogleTest通用构建说明 设置 用CMake构 ...
- C#获取特定进程CPU和内存使用率
C#获取特定进程CPU和内存使用率 首先是获取特定进程对象,可以使用Process.GetProcesses()方法来获取系统中运行的所有进程,或者使用Process.GetCurrentProces ...
- 基于SNMP通过OID获取思科、锐捷、迈普等交换机的CPU、内存使用率
一.基于SNMP通过OID获取思科交换机的CPU.内存使用率 1.获取CPU使用率的OID: 1.3.6.1.4.1.9.2.1.56.0 过去5秒中CPU使用率 1.3.6.1.4.1.9.2.1. ...
- 解决SSD+HDD双硬盘下电脑卡顿问题,CPU和内存使用率低,电脑依旧卡顿
问题描述:SSD+HDD混合双硬盘电脑,新装系统后系统卡顿,多次重装系统.更换硬盘依然无效: 症状:电脑CPU和内存使用率很低,但硬盘读写慢.电脑卡: 解决方案参考:https://www.gwygd ...
- Core Temp实时监控CPU温度/内存使用率/CPU主频
Core Temp实时监控CPU温度/内存使用率/CPU主频 1.官网下载 2.双击安装即可 3.配置[具体可安个人需求配置] 4. 设置中文 1.官网下载 https://www.alcpu.com ...
- java获取系统CPU和内存使用率的三种方法
获取系统CPU和内存的三种方法: 1.使用OperatingSystemMXBean获取 2.使用sigar方法获取 3.使用oshi方法获取 以下是我在我的机子上对三种方法测试的比较 方法 准确率 ...
- linux 优化内存分配,Linux性能优化 第三章 性能工具:系统内存
3.1内存性能统计信息 3.1.1内存子系统和性能 和CPU相比,内存的读写速度都大大落后于CPU.为了弥补这个差距,通常CPU会采用高速缓存的机制(高cache). 3.1.2内存子系统(虚拟存储器 ...
- python3 监控指定进程 cpu和内存 使用率
为了测试某个服务的稳定性,通常需要在服务长时间运行的情况下,监控其资源消耗情况,比如cpu和内存使用 这里借助python的psutil这个包可以很方便的监控指定进程号(PID)的cpu和内存使用情况 ...
最新文章
- cad的文字嵌入线条_带你玩转CAD!
- 第二章:2.1 微分方程、差分方程求解(举例)
- 使用DOTS制作一款第三人称僵尸射击游戏
- FreeRTOS系统配置文件FreeRTOSConfig.h
- easyUI学习笔记二
- List和Set集合使用
- 本体学习的概念及目标
- 系统学习 TypeScript(四)——变量声明的初步学习
- Unity UGUI——Text组件(Character)
- 计算机网络图标显示不出来,网络连接图标不见了的原因和解决方法【详细介绍】...
- 卡巴斯基PURE3.0激活码授权文件KEY
- 对项目需求管理的认识和体会
- golang中的URL 的编码和解码(转)
- 洛谷 U80455 逃跑的Seaway
- excel如何快速从身份证号码中提取出生日期?
- openwrt配置doh
- 考研复试问答(计算机组成原理部分)
- 华为matepad11无法连接mpencil2
- “机器学习实战”刻意练习1/8周
- python kivy kv模板调用_Python-Kivy:使用另一个类中的函数更改和保留kv文件值
热门文章
- kafka基础学习(三)ConsumerAPI
- 其实单片机中的串口和中断问题就像设定使碗接到10滴水就溢出
- 滴水逆向学习总结第一期
- 分布式管理控制系统Git与项目托管平台Github相关概念、工作流程与操作方法
- 用计算机恶搞对话,如何恶搞朋友的电脑?超简单的vbs代码
- model3充电方式_Model3首发评测 篇二:内饰、充电介绍
- 0606-2020-LEETCODE-经典.61-扑克牌中的顺子(最大值/最小值/去重)
- python之__dict__方法使用
- springBoot+springSecurity验证密码MD5加密
- 自媒体人必看的几个文案网站,让文案创作更有色