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

dummy_worker C++ 预占用部分比例cpu资源,人为创造cpu资源紧张

背景

有时候为了C++测试程序在cpu资源紧张情况下是否正常,需要人为创造cpu资源紧张

编译方法

g++ -o dummp_worker dummp_worker.cpp -std=c++11 -pthread

使用方法

./dummp_worker 4 0.2

占用4个cpu核的20%比例的cpu资源

源码

// dummp_worker.cpp
#include <cassert>
#include <chrono>
#include <iostream>
#include <thread>
#include <vector>using namespace std;
using namespace chrono;void busy_wait(size_t nanosec) {auto t0 = high_resolution_clock::now();while (duration_cast<nanoseconds>(high_resolution_clock::now() - t0).count() < nanosec) {}
}[[noreturn]] void work(float percentage) {assert(percentage >= 0.f && percentage <= 1.f);constexpr float period = 1000000.0f;while (true) {// busy_wait(900000);// this_thread::sleep_for(100000ns);busy_wait(static_cast<size_t>(period * percentage));this_thread::sleep_for(nanoseconds(static_cast<size_t>(period * (1.f - percentage))));}
}int main(int argc, char* argv[]) {if (argc < 3) {cout << "Args: worker_num occupation_rate.\n";return 0;}const int num = stoi(argv[1]);const float percentage = stof(argv[2]);if (num < 1) {cout << "Error: num of workers less than 1.\n";return 0;}if (percentage < 0.f || percentage > 1.f) {cout << "Error: occupation rate should be between [0.0, 1.0].\n";return 0;}cout << "num of workers: " << num << "\n"<< "occupation rate: " << percentage << "\n";// do the workvector<thread> tds;for (size_t i = 0; i < num; ++i) {tds.emplace_back(work, percentage);}tds[0].join();
}

参考

https://github.com/mightbxg/DummyWorker

相关文章:

dummy_worker C++ 预占用部分比例cpu资源,人为创造cpu资源紧张

背景 有时候为了C测试程序在cpu资源紧张情况下是否正常&#xff0c;需要人为创造cpu资源紧张 编译方法 g -o dummp_worker dummp_worker.cpp -stdc11 -pthread 使用方法 ./dummp_worker 4 0.2 占用4个cpu核的20%比例的cpu资源 源码 // dummp_worker.cpp #include <c…...

电脑缺失opencl.dll怎么办,轻松解决opencl.dll的多种方法分享

当我们在操作电脑过程中遇到系统提示“由于找不到opencl.dll&#xff0c;无法继续执行代码”&#xff0c;这个错误会导致软件应用无法正常运行。OpenCL.dll作为一个与Open Computing Language&#xff08;开放计算语言&#xff09;相关的动态链接库文件&#xff0c;它在执行需要…...

el-select 点击按钮滚动到选择框顶部

主要代码是在visibleChange 在这个 popper 里面找到 .el-select-dropdown__list let popper ref.$refs.popper const ref this.$refs.select let dom popper.querySelector(.el-select-dropdown__list) setTimeout(() > { dom.scrollIntoView() }, 800) <templat…...

vue 钩子函数updated什么时候触发

触发时机 updated是Vue生命周期钩子函数之一&#xff0c;在组件的数据变化导致虚拟DOM重新渲染并应用到实际DOM之后触发。具体来说&#xff0c;updated会在以下几种情况下被触发&#xff1a; 初始渲染完成后&#xff1a;当组件首次渲染完成并将虚拟DOM渲染到实际DOM之后&#…...

消息队列使用常见问题

一、消息丢失的时机&#xff1f; 生产端消息丢失 问题&#xff1a;因为网络异常导致消息发送失败&#xff0c;此时可能会产生消息丢失的情况&#xff0c;重试后可能产生消息重复生产的情况。 解决&#xff1a;超时重试&#xff0c;并在消费端保证幂等性。 消息队列中消息丢失 …...

常用SQL命令

应用经常需要处理用户的数据&#xff0c;并将用户的数据保存到指定位置&#xff0c;数据库是常用的数据存储工具&#xff0c;数据库是结构化信息或数据的有序集合&#xff0c;几乎所有的关系数据库都使用 SQL 编程语言来查询、操作和定义数据&#xff0c;进行数据访问控制&…...

【neteq】tgcall的调用、neteq的创建及接收侧ReceiveStatisticsImpl统计

G:\CDN\P2P-DEV\Libraries\tg_owt\src\call\call.cc基本是按照原生webrtc的来的:G:\CDN\P2P-DEV\tdesktop-offical\Telegram\ThirdParty\tgcalls\tgcalls\group\GroupInstanceCustomImpl.cpptg对neteq的使用 worker 线程创建call Call的config需要neteqfactory Call::CreateAu…...

使用Python读取las点云,写入las点云,无损坐标精度

目录 1 为什么要写这个博文2 提出一些关键问题3 给出全部代码安装依赖源码&#xff08;laspy v2.x&#xff09; 1 为什么要写这个博文 搜索使用python读写las点云数据&#xff0c;可以找到很多结果。但是&#xff01; 有些只是简单的demo&#xff0c;且没有发现/说明可能遇到的…...

python开发二

python开发二 requests请求模块 requests 是一个常用的 Python 第三方库&#xff0c;用于发送 HTTP 请求。它提供了简洁且易于使用的接口&#xff0c;使得与 Web 服务进行交互变得非常方便。 发送 GET 请求并获取响应 import requestsresponse requests.get("https:/…...

部署JVS服务出现上传文件不可用,问题原因排查。

事情的起因是这样的&#xff0c;部门经理让我部署一下JVS资源共享框架&#xff0c;项目的地址是在这里 项目资源地址 各位小伙伴们做好了&#xff0c;我要开始发车了&#xff0c;全新的“裂开之旅” 简单展示一下如何部署JVS文档 直达链接 撕裂要开始了 本来服务启动的好好…...

机器视觉检测为什么是工业生产的刚需?

机器视觉检测在工业生产中被视为刚需&#xff0c;主要是因为它具备以下几个关键优势&#xff1a; 提高精度与效率&#xff1a;机器视觉系统可以进行高速、高精度的检测。这对于保证产品质量、减少废品非常关键。例如&#xff0c;在生产线上&#xff0c;机器视觉可以迅速识别产品…...

Adobe系列软件安装

双击解压 先运行Creative_Cloud_Set_Up.exe。 完毕后&#xff0c;运行AdobeGenP.exe 先Path&#xff0c;选路径&#xff0c;如 C:\Program Files\Adobe 后Search 最后Patch。 关闭软件&#xff0c;修图&#xff01;...

【FX110】2024外汇市场中交易量最大的货币对是哪个?

作为最大、最流动的金融市场之一&#xff0c;外汇市场每天的交易量高达几万亿美元&#xff0c;涉及到数百种货币。不同货币对的交易活跃程度并不一样&#xff0c;交易者需要根据货币对各自的特点去进行交易。 全年外汇市场中涉及美元的外汇交易超过50%&#xff01; 实际上&…...

leetcode尊享面试100题(549二叉树最长连续序列||,python)

题目不长&#xff0c;就是分析时间太久了。 思路使用dfs深度遍历&#xff0c;先想好这个函数返回什么&#xff0c;题目给出路径可以是子-父-子的路径&#xff0c;那么1-2-3可以&#xff0c;3-2-1也可以&#xff0c;那么考虑dfs返回两个值&#xff0c;对于当前节点node来说&…...

C#面试题: 寻找中间值

给定一个数组&#xff0c;在区间内从左到右查找中间值&#xff0c;每次查找最小值与最大值区间内的中间值&#xff0c;且这个区间元素数量不小于3。 例如 1.给定数组float[] data { 1, 2.3f, 4, 5.75f, 8.125f, 10.5f, 13, 15, 20 } 输出&#xff1a;10.5、5.75、4、2.3、8…...

987: 输出用先序遍历创建的二叉树是否为完全二叉树的判定结果

解法&#xff1a; 一棵二叉树是完全二叉树的条件是&#xff1a; 对于任意一个结点&#xff0c;如果它有右子树而没有左子树&#xff0c;则这棵树不是完全二叉树。 如果一个结点有左子树但是没有右子树&#xff0c;则这个结点之后的所有结点都必须是叶子结点。 如果满足以上条…...

13:HAL---SPI

目录 一:SPL通信 1:简历 2:硬件电路 3:移动数据图 4:SPI时序基本单元 A : 开/ 终条件 B:SPI时序基本单元 A:模式0 B:模式1 C:模式2 D:模式3 C:SPl时序 A:发送指令 B: 指定地址写 C:指定地址读 5&#xff1a;NSS(CS) 6&#xff1a;时钟 二: W25Q64 1:简历 2…...

微服务---gateway网关

目录 gateway作用 gateway使用 添加依赖 配置yml文件 自定义过滤器 nacos上的gateway的配置文件 我们现在知道了通过nacos注册服务&#xff0c;通过feign实现服务间接口的调用&#xff0c;那对于不同权限的用户访问同一个接口&#xff0c;我们怎么知道他是否具有访问的权…...

HTML4(二)

文章目录 1 开发者文档2 基本标签2.1 排版标签2.2 语义化标签2.3 行内元素与块级元素2.4 文本标签2.5 常用标签补充 3 图片标签4 超链接标签4.1 跳转页面4.2 跳转文件4.3 跳转锚点4.4 唤起指定应用 5 列表5.1 有序列表5.2 无序列表5.3 自定义列表 6 表格6.1 基本结构6.2 表格标…...

SpringBoot 扩展篇:ConfigFileApplicationListener源码解析

SpringBoot 扩展篇&#xff1a;ConfigFileApplicationListener源码解析 1.概述2. ConfigFileApplicationListener定义3. ConfigFileApplicationListener回调链路3.1 SpringApplication#run3.2 SpringApplication#prepareEnvironment3.3 配置environment 4. 环境准备事件 Config…...

声明式应用编排框架Planifest:云原生时代应用交付新范式

1. 项目概述&#xff1a;一个面向未来的声明式应用编排框架如果你和我一样&#xff0c;在云原生和自动化运维领域摸爬滚打了几年&#xff0c;就会深刻体会到“编排”这个词的分量。从早期的Shell脚本&#xff0c;到Ansible、Terraform&#xff0c;再到Kubernetes的YAML海洋&…...

AI图像生成预设库:开源项目kaushalrao/ai-editor-presets使用指南

1. 项目概述&#xff1a;AI驱动的编辑预设库如果你和我一样&#xff0c;经常在各类AI图像生成工具里“炼丹”&#xff0c;那你一定对“预设”&#xff08;Presets&#xff09;这个概念不陌生。简单来说&#xff0c;预设就是一套预先配置好的参数组合&#xff0c;它能让你一键复…...

AI智能体技能开发实战:从awesome-agent-skills到工程化应用

1. 项目概述&#xff1a;一个智能体技能的知识宝库最近在折腾AI智能体&#xff08;Agent&#xff09;开发&#xff0c;发现一个挺有意思的现象&#xff1a;大家都能用LangChain、AutoGen这些框架搭出个智能体的架子&#xff0c;但真想让这个“智能体”干点具体、有用、甚至有点…...

3D模型格式转换终极指南:如何用stltostp快速将STL转为STEP格式

3D模型格式转换终极指南&#xff1a;如何用stltostp快速将STL转为STEP格式 【免费下载链接】stltostp Convert stl files to STEP brep files 项目地址: https://gitcode.com/gh_mirrors/st/stltostp 你是否曾经遇到这样的困境&#xff1f;辛苦设计的3D打印模型在STL格式…...

综合能源系统多级环式一体化设计【附代码】

✨ 长期致力于综合能源系统、环式一体化设计、混合求解算法、软件开发应用研究工作&#xff0c;擅长数据搜集与处理、建模仿真、程序编写、仿真设计。 ✅ 专业定制毕设、代码 ✅ 如需沟通交流&#xff0c;点击《获取方式》 &#xff08;1&#xff09;多级环式一体化设计模型与嵌…...

告别静态图表!用C# Winform Chart控件打造实时刷新的数据监控面板(附完整源码)

用C# Winform Chart控件构建高并发实时数据监控系统 在工业自动化、金融交易和物联网领域&#xff0c;实时数据可视化是决策者最依赖的"眼睛"。传统静态图表早已无法满足毫秒级数据更新的需求&#xff0c;而基于Web的解决方案又常常面临延迟高、部署复杂的困扰。本文…...

汽车电源管理系统:同步降压转换器与LDO设计解析

1. 汽车电源管理系统概述在汽车电子系统中&#xff0c;电源管理单元(PMU)扮演着至关重要的角色。现代车辆中&#xff0c;电子控制单元(ECU)数量已超过100个&#xff0c;从发动机控制模块到信息娱乐系统&#xff0c;每个子系统都需要稳定可靠的电源供应。汽车电源环境具有独特的…...

Unity VR立体反射与抗锯齿技术实战解析

1. Unity VR 立体反射与抗锯齿技术深度解析在VR开发中&#xff0c;视觉真实感直接决定了用户体验的质量。立体反射和抗锯齿作为两项核心技术&#xff0c;前者解决了传统平面反射缺乏深度感的问题&#xff0c;后者则消除了画面边缘的锯齿瑕疵。本文将基于实际项目经验&#xff0…...

被安排做“脏活累活”怎么办?聪明人把它变成了核心竞争力

在软件测试的职业旅程中&#xff0c;几乎每一位从业者都会遇到这样的时刻&#xff1a;领导把最繁琐的模块分给你&#xff0c;把重复度最高的回归用例交给你&#xff0c;把无人问津的旧系统兼容性测试派给你。这些任务往往技术含量看似不高、耗时巨大且难以在简历上写出亮点&…...

深圳市2026年打造人工智能先锋城市项目扶持计划申请指南

本项目扶持计划下设十个项目类别&#xff0c;均采用事后奖补类支持方式。1、申报单位需同时满足基础申报条件和专项申报条件。基础申报条件如下&#xff1a;&#xff08;一&#xff09;申报单位为在深圳市内&#xff08;含深汕特别合作区&#xff09;从事生产经营活动&#xff…...