改变CPU利用率

linux下测试写满cpu 在编写测试程序时,采用多线程,为了使线程不因为时间片耗尽而被切换,将线程的调度策略设置为SCHED_FIFO,优先级设置为最大,每个线程处理的逻辑为一个死循环,使线程一直处于RUNNING态,一直占用cpu。测试代码如下(testcpu.c): 阅读详情

1.1让CPU占用率听你的指挥

1.CPU的占用率固定在50%,为一条直线;

解法一:

#include<iostream.h>
#include <windows.h>//头文件
int main()
{
 for(;;)
 {
  for(int i=0;i<10800000;i++);
  Sleep(10);//注意VC中S大写

 }
 return 0;
}

缺点循环的次数不一定固定,不同的CPU是不同的计算方法,cpu的频率*10^9*2/5.原因是cpu每个时钟周期大概2条代码。一个循环的之行是由5条汇编代码组成的,所以平均每秒的之行次数为上面的计算结果。

解法二:

#include<iostream.h>
#include <windows.h>
const DWORD busyTime=10;
const DWORD  idleTime=busyTime;
int main()
{
 
 DWORD startTime=GetTickCount();

    while((GetTickCount()-startTime)<=busyTime);
  Sleep(idleTime);  
 return 0;
}

2.CPU的占用率为一条直线,具体占用率由命令行参数决定(参数范围1-100);

//c#code

static voic makeUsage(float level)
{
 PerformanceCounter p=new PerformanceCounter("Processor","%Processor Time","_Total");
 while(true)
 {
  if(p.NextValue>leval)
   System.Threading.Thread.Sleep(10);
 }
}

3 CPU的占用率为一条正弦曲线

#include<iostream.h>
#include <windows.h>
#include<math.h>
//把一条正弦曲线0-2PI之间的弧度等分成200分进行抽样,计算每个抽样点的振幅
//然后把每咯300ms的时间取下一个抽样点,并让CPU工作对应振幅的时间。
const int SAMPLING_COUNT=200;//抽样点数量
const double PI=3.1415926535;//pi的值
const int TOTAL_AMPLTUDE=300;//每个抽样点对应的时间片

int main(int argc,char* argv[])
{
 DWORD busySpan[SAMPLING_COUNT];
 int amplitude=TOTAL_AMPLTUDE/2;
    double radian=0.0;
 double randianIncrement=2.0/(double)SAMPLING_COUNT;//抽样弧度的增量
 for(int i=0;i<SAMPLING_COUNT;i++)
 {
  busySpan[i]=(DWORD)(amplitude+sin(PI*radian)*amplitude);
  radian+=randianIncrement;
 }
 DWORD startTime=0;
 for(int j=0;;j=(j+1)%SAMPLING_COUNT)
 {
  startTime=GetTickCount();
  while((GetTickCount()-startTime)<=busySpan[j])
  ;
  Sleep(TOTAL_AMPLTUDE-busySpan[j]);
 }
 return 0;
}

如果是使用双核,所以需要在任务管理器里设置其中一个CPU运行程序.使用SetThreadAffinityMask()和GetProcessorInfo().

总结:一些windows的API

1.sleep()当前线程“停”下来

2 WaitForSigleProject()自己停下来。等待某个事件发生

3.GetTickCount ()系统启动到现在经历的毫秒值

4.QueryPerformanceFrequency(),QueryPerformanceCounter()访问精确度更高的CPU数据

5timeGetSystemTime()另一个得到高精度时间的方法

6 PerformanceCounter()效能计数器

7GetProcessorIInfo()/SetThreadAffinityMask()遇到多核的CPU的时候,控制cpu

8 getCPUTickCount()拿到CPU核心运行周期数。

今天终于体会到关键地方为什么用汇编的好处了。    视频这块的工作都快一年多了。发现在自己还是那么多菜。继续努力。言归正传。         由于我们用的是三星的s5p6443芯片(其实就是阉割版的6440或者s5p6410),没有camera的接口,但我们公司的做的gps设备基本都需要AVIN功能,主要用来做倒车镜功能来用。所以我一们一直采用s5p6443+fpga+tvp5150的架构来做avin的功能。其实,基本工作原理就是,tvp5150将标准的模拟信号(NTSC/PAL/SECAM制式)转换为YCBCR数字信号后,送给fpga,fpga再将其 阅读详情

相关推荐

【实录】首次利用GPCC历史数据调优Greenplum 第一部分

数据库性能分析和优化是一个难题,笔者所在的Greenplum研发部门近期正好在解决一个实际用户的全局性能问题,本文记录了分析过程和解决思路。本案例是第一次对实际客户的生产库以GPCC历史数据为核心剖析性能问题,因此有一定的开创性和借鉴意义,故撰文供研发同事、现场工程师、支持工程师参考,同时也适合具备一定GP基础并希望提高的读者阅读。同时为了保护客户的商业秘密,本文不透露任何关于该商业用户的名称、...

Greenplum中文社区 809

CST 电磁仿真计算时,为什么要关闭超线程?【操作教程】

一般一个核心对应了一个线程,而 intel 开发出了超线程技术,1 个核心能够做到 2 个线程计算,而 6 个核心则能够做到 12 个线程,超线程技术的好处就是无需增加物理核心就可以明显的提高 CPU 多线程功能,毕竟增加物理核心是需要占据非常大的核心面积,成本也随之增加。处理器的核心数一般指的就是物理核心数,也称之为内核,双核就是包括 2 个独立的 CPU 核心单元组,而四核就是包括 4 个独立的 CPU 核心单元组,是处理各种数据的中心计算单元,多核心的处理器能够有效提高 CPU 的多任务功能。

a18665053298的博客 2837

基于ARIMA-BP神经网络的CPU利用率预测模型研究

基于ARIMA-BP神经网络的CPU利用率预测模型研究

linux提高CPU使用率并设置固定占比

背景:项目申请的服务器资源要达到使用要求,不然就会减配,为了方便后续扩展不考虑减配,直接将使用率提高。 思路是先将CPU占用率直接上到100% 然后用cpulimit限定进程占用上限 1、安装cpumit 下载cpulimit-master wget -O https://github.com/opsengine/cpulimit/archive/master.zip 不通外网的,放在网盘里了,大家自提: 链接:https://pan.baidu.com/s/1kLuj1MzQz...

jnloverll的博客 8497

机器学习预测CPU占有率

给定64台主机的过去三周的cpu利用率样本训练集数据,时序间隔300秒,对这批机器接下来一周的cpu利用率进行预测

qq_45904458的博客 1235

基于tensorflow来分析算法训练、在线运行、预测各阶段的CPU/RAM资源占用情况

为了搞清楚算法在训练、发布、预测各个阶段对CPU和RAM的资源占用情况,笔者做了个小实验。

weixin_41069650的博客 2023

python进程占用cpu过高_python多进程提高cpu利用率

cpu参数:打包文件,单进程#coding=utf-8from multiprocessing importProcessimportsys, osimporttimedeftimetask(times):cmd="tar zcfPh /data/nerri_%s.tar.gz /data/backup" %timesos.system(cmd)defworks_multi_process(f...

weixin_42505576的博客 3064

linux让cpu占有率达到稳定值,c# – 模拟稳定的CPU负载和峰值

首先,你必须了解CPU使用率总是在一定时间内的平均值。在任何给定的时间,CPU是工作或不是。 CPU从不是40%工作。然而,我们可以模拟一个40%的负载超过一秒,通过让CPU工作0.4秒,睡眠0.6秒。这使得平均利用率超过40%。将其切割到小于一秒,例如100毫秒的块应当给予甚至更稳定的利用。以下方法将采用所需利用率的参数,然后在一定程度上利用单个CPU /内核:public static voi...

weixin_34260071的博客 531

Cgroup对CPU资源的分配功能测试

测试环境:Ubuntu,内存大小:2048MB,处理器数量:1CPU。 首先在/sys/fs/cgroup/cpu下创建cpu子控制群组cg1。 并在cg1下创建控制群组cg2和cg3。 分别在控制群组cg2和cg3下运行程序cpu_test1和cpu_test2。(cpu_test1和cpu_test2均为死循环,在没有限制的情况下会耗尽所有的CPU资源) 用top命令查看各个进程的CPU利用率。 由于控制群组cg2和cg3下的参数cpu.shares相同,均为1024,因此在单处理器的Linux

qq_44998067的博客 862

Linux系统调优详解(十)——CPU调优

今天继续给大家介绍Linux运维相关知识,本文主要内容是CPU调优。 一、CPU中断次数查看 二、进程优先级设置 三、CPU亲和力设置 四、CPU性能和利用率

永远是少年 3116

操作系统 day2 -单处理机

开机以后,先执行 接上节课: 单处理机: 按顺序执行。 每次处理一个程序,串行(一个一个完成) 串行?并行? 例题:(软考) 所需时间:加起来 130ms CPU利用率: 60/130=47% 这种运行方式的缺点是: 利用率低。 并发与并行的区别: 并行是非常严格的同时发生!同时刻!(全班同学一起听课) 并 串 ? 单道: 多道: 例题: 分时系统: 每个时间段固定。 a...

m0_50894322的博客 560

<操作系统导论>第四章 抽象:进程

第四章

梨花压海棠的博客 745

linux top 看cpu,linux top 查看CPU命令

top 命令主要用于查看进程的相关信息,同时它也会提供查看系统平均负载,cpu 信息和内存信息实时监控系统资源使用情况[root@localhost ~]$ top // 动态查看进程使用资源的情况,每三秒刷新一次[root@localhost ~]$ top -c // 动态查看进程使用资源的情况,但会详细地显示进程的命令行信息,参考下面的COMMAND解释[root@...

weixin_32338107的博客 396

python代码在gpu上面运行_如何将python代码转换为在GPU上而不是CPU上运行?

我得到了一个python代码,它接收两个图像作为输入,并使用Gabor过滤器来查找两个图像的RGB的相关性,并将其保存在csv文件中。所以我需要使用GPU来执行程序,因为它需要很多时间和CPU利用率。我有一个geforcegtx1050ti和一个完全的编程初学者。在我做了一些研究,了解了CUDA和Tensorflow,但是我真的不确定如何继续实现它,以及在不改变代码的情况下实现它的最佳方法是什么。...

weixin_39851977的博客 4897

JDK11升级后内存问题解析

今年天猫国际技术团队计划从4月份开始先升级并应用JDK11。升级后台系统时一切比较顺利,但升级核心应用时出现了两个意外情况,也是比较典型的问题,这里记录一下。问题一在4月份的非核心应用升级过程中出现的问题有一定的沉淀,此次核心应用升级除了包版本冲突等常规问题,升级过程中一切顺利,预发环境也顺利部署完毕。预发部署一段时间后问题注入。问题表现为预发机器重启完毕后,过一段时间就会出现服务不响应,cpu...

淘系技术 1764

OS学习日志————1

问题8:Now run with some randomly generated processes: -s 1 -l 3:50,3:50 or -s 2 -l 3:50,3:50 or -s 3 -l 3:50,3:50. See if you can predict how the trace will turn out. What happens when you use the flag -I IO RUN IMMEDIATE vs. -I IO RUN LATER?这里我们测试 -S指令。

m0_62551907的博客 125

raspberry pi_使用Raspberry Pi进行简单的LED控制

raspberry pi 去年,在Pi Day前后,我在Opensource.com上写了一篇文章,介绍如何使用Raspberry Pi设置音乐灯光秀 。 在创建灯光秀之前,我鼓励读者学习面包板和CanaKit,作为使用Raspberry Pi和LED进行原型控制的一种方法。 使LED与面包板一起工作需要很多零件。 初学者可能会感到困惑和不知所措。 有关Raspberry Pi...

cumo3681的博客 503

Linux系统中top命令详解

在Linux系统中top命令是常用的分析性能的工具,能够实时监控系统中各个进程资源占用的情况,这和windows中任务管理器有点类似。 top参数详解 第一行,任务队列信息,同 uptime 命令的执行结果 系统时间:07:27:05 运行时间:up 1:57 min, 当前登录用户: 3 user 负载均衡(uptime) load average: 0.00, 0.00, 0.00 average后面的三个数分别是1分钟、5分钟、15分钟的负载情况。 load average数.

msbjy的博客 3万+
上一篇: inode
下一篇: 编译器什么时候会合成default constructor
huan_xia
博客等级 码龄12年 1粉丝 0原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值