系列文章目录

第一章 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与内存使用率限制相关推荐

  1. 第二章 UT单元测试——GTest框架实例

    系列文章目录 第一章 UT单元测试--GoogleTest通用构建说明 第二章 UT单元测试--GTest框架实例 文章目录 系列文章目录 前言 一.环境配置 二.使用步骤 1.添加待测源码 2.修改 ...

  2. 第一章 UT单元测试——GoogleTest通用构建说明

    系列文章目录 第一章 UT单元测试--GoogleTest通用构建说明 第二章 UT单元测试--GTest框架实例 文章目录 系列文章目录 前言 GoogleTest通用构建说明 设置 用CMake构 ...

  3. C#获取特定进程CPU和内存使用率

    C#获取特定进程CPU和内存使用率 首先是获取特定进程对象,可以使用Process.GetProcesses()方法来获取系统中运行的所有进程,或者使用Process.GetCurrentProces ...

  4. 基于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. ...

  5. 解决SSD+HDD双硬盘下电脑卡顿问题,CPU和内存使用率低,电脑依旧卡顿

    问题描述:SSD+HDD混合双硬盘电脑,新装系统后系统卡顿,多次重装系统.更换硬盘依然无效: 症状:电脑CPU和内存使用率很低,但硬盘读写慢.电脑卡: 解决方案参考:https://www.gwygd ...

  6. Core Temp实时监控CPU温度/内存使用率/CPU主频

    Core Temp实时监控CPU温度/内存使用率/CPU主频 1.官网下载 2.双击安装即可 3.配置[具体可安个人需求配置] 4. 设置中文 1.官网下载 https://www.alcpu.com ...

  7. java获取系统CPU和内存使用率的三种方法

    获取系统CPU和内存的三种方法: 1.使用OperatingSystemMXBean获取 2.使用sigar方法获取 3.使用oshi方法获取 以下是我在我的机子上对三种方法测试的比较 方法 准确率 ...

  8. linux 优化内存分配,Linux性能优化 第三章 性能工具:系统内存

    3.1内存性能统计信息 3.1.1内存子系统和性能 和CPU相比,内存的读写速度都大大落后于CPU.为了弥补这个差距,通常CPU会采用高速缓存的机制(高cache). 3.1.2内存子系统(虚拟存储器 ...

  9. python3 监控指定进程 cpu和内存 使用率

    为了测试某个服务的稳定性,通常需要在服务长时间运行的情况下,监控其资源消耗情况,比如cpu和内存使用 这里借助python的psutil这个包可以很方便的监控指定进程号(PID)的cpu和内存使用情况 ...

最新文章

  1. cad的文字嵌入线条_带你玩转CAD!
  2. 第二章:2.1 微分方程、差分方程求解(举例)
  3. 使用DOTS制作一款第三人称僵尸射击游戏
  4. FreeRTOS系统配置文件FreeRTOSConfig.h
  5. easyUI学习笔记二
  6. List和Set集合使用
  7. 本体学习的概念及目标
  8. 系统学习 TypeScript(四)——变量声明的初步学习
  9. Unity UGUI——Text组件(Character)
  10. 计算机网络图标显示不出来,网络连接图标不见了的原因和解决方法【详细介绍】...
  11. 卡巴斯基PURE3.0激活码授权文件KEY
  12. 对项目需求管理的认识和体会
  13. golang中的URL 的编码和解码(转)
  14. 洛谷 U80455 逃跑的Seaway
  15. excel如何快速从身份证号码中提取出生日期?
  16. openwrt配置doh
  17. 考研复试问答(计算机组成原理部分)
  18. 华为matepad11无法连接mpencil2
  19. “机器学习实战”刻意练习1/8周
  20. python kivy kv模板调用_Python-Kivy:使用另一个类中的函数更改和保留kv文件值

热门文章

  1. kafka基础学习(三)ConsumerAPI
  2. 其实单片机中的串口和中断问题就像设定使碗接到10滴水就溢出
  3. 滴水逆向学习总结第一期
  4. 分布式管理控制系统Git与项目托管平台Github相关概念、工作流程与操作方法
  5. 用计算机恶搞对话,如何恶搞朋友的电脑?超简单的vbs代码
  6. model3充电方式_Model3首发评测 篇二:内饰、充电介绍
  7. 0606-2020-LEETCODE-经典.61-扑克牌中的顺子(最大值/最小值/去重)
  8. python之__dict__方法使用
  9. springBoot+springSecurity验证密码MD5加密
  10. 自媒体人必看的几个文案网站,让文案创作更有色