`

编程之美一 : 让CPU占有率曲线听你指挥

 
阅读更多

写一个程序,让用户来决定Windows任务管理器(Task Manager)的CPU占有率。程序越精简越好,可以实现以下三种情况:

/****
 * 
 * 1. JAVA控制CPU的占有率 - 固定在50%,为一条直线
 * 
 ****/
public class CPUTest1 {
	public static void main(String[] args) throws Exception{
		for (;;) {
			for (int i = 0; i < 96000000; i++) {
				;
			}
			Thread.sleep(10);
		}
	}
}

/****
 * 
 * 2. JAVA控制CPU的占有率 - 控制在50%
 * 
 ****/
public class CPUTest2 {
	static int busyTime = 10;
	static int idelTime = busyTime; // 50%的占有率

	public static void main(String[] args) throws Exception {
		long startTime = 0;
		while (true) {
			startTime = System.currentTimeMillis();
			while (System.currentTimeMillis() - startTime < busyTime) {
				;
			}
			Thread.sleep(idelTime);
		}
	}
}

/****
 * 3. JAVA控制CPU的使用率 - 完美曲线
 * 
 * 把一条正弦曲线0~2π之间的弧度等分成200份进行抽样,计算每个抽样点的数据 
 * 然后每隔300ms的时间取下一个抽样点,并让cpu工作对应振幅的时间
 * 
 ****/
public class CPUTest3 {
	public static final int SAMPLING_COUNT = 200; // 抽样点数量 2/RANDIAN_INCREMENT
	public static final double PI = Math.PI; // pi值
	public static final double RANDIAN_INCREMENT = 0.01; // 抽样弧度的增量, 2/SAMPLING_COUNT
	public static final int TOTAL_AMPLITUDE = 300; // 振幅, 每个抽样点对应的时间片

	public static void main(String[] args) throws Exception {//  角度的分割   
		long[] busySpan = new long[SAMPLING_COUNT];
		long[] idleSpan = new long[SAMPLING_COUNT];
		int amplitude = TOTAL_AMPLITUDE / 2;
		double radian = 0.0;
		for (int i = 0; i < SAMPLING_COUNT; i++) {
			busySpan[i] = (long) (amplitude + (Math.sin(PI * radian) * amplitude));
			radian += RANDIAN_INCREMENT;
		}
		long startTime = 0;
		for (int j = 0;; j = (j + 1) % SAMPLING_COUNT) {
			startTime = System.currentTimeMillis();
			while (System.currentTimeMillis() - startTime < busySpan[j]) {
				;
			}
			Thread.sleep(idleSpan[j]);
		}
	}
}


分享到:
评论

相关推荐

    CpuUsage(显示cpu利用动态曲线图)

    2. GUI编程:使用MFC(Microsoft Foundation Classes)或其他图形库创建用户界面,展示CPU利用率曲线。 3. 动态链接库(DLL):CpuDll.dll可能封装了操作系统调用,提供了跨进程共享代码的能力。 总结,CpuUsage是...

    易语言取进程CPU占有率源码

    在IT领域,尤其是在编程实践中,了解如何获取进程的CPU占有率是一项重要的技能。本文将深入探讨易语言(E语言)中实现这一功能的源码及原理,同时也会提及易语言的基础知识,以帮助初学者更好地理解。 易语言是中国...

    c#Cpu正玄曲线

    2. **CPU使用率**:CPU使用率是指处理器在给定时间内的忙碌程度。系统通过性能计数器来监控这一指标,通常以百分比表示。高CPU使用率可能意味着程序运行繁重或存在资源争抢。 3. **性能计数器(Performance Counter...

    Android编程实现获取系统内存、CPU使用率及状态栏高度的方法示例

    本文实例讲述了Android编程实现获取系统内存、CPU使用率及状态栏高度的方法。分享给大家供大家参考,具体如下: DeviceInfoManage类用于获取系统的内存,CPU的信息,以及状态栏的高度 import java.io.BufferedReader...

    VB实现CPU曲线

    本项目"VB实现CPU曲线"是使用VB来实时绘制并显示计算机CPU使用率的动态曲线图表。通过这样的可视化方式,用户可以直观地了解系统资源的使用情况,这对于系统监控和性能分析来说非常有用。 首先,我们要理解CPU使用...

    编程之法:面试和算法心得.pdf

    ### 编程之法:海量数据处理方法及STL容器应用 #### 一、海量数据处理概述 在当今数字化时代,随着数据量的急剧增长,如何有效地存储、处理和操作这些海量数据成为了一个重要的技术挑战。《编程之法:面试和算法...

    android 获取cpu使用率, 内存 实时数据

    总的来说,获取Android设备的CPU使用率和内存实时数据是Android系统编程中的重要技能。通过这些数据,开发者不仅可以了解应用的运行状况,还能进行性能调优,提高用户体验。在实现这些功能时,要确保遵循Android权限...

    VC获取CPU使用率

    通过编程方式获取CPU使用率,可以帮助开发者了解程序运行时对系统资源的占用情况,从而优化程序性能。以下是一些关于如何使用VC++(MFC库)和其他相关工具来获取CPU使用率的知识点。 首先,VC++中的MFC库并没有直接...

    Qt实现的实时显示CPU使用率

    本项目是利用Qt实现的一个功能,即实时显示CPU使用率,对于系统监控或者性能分析的软件来说,这是一个非常实用的功能。 首先,我们要理解如何在Qt中获取系统资源信息。在Qt库中,并没有直接提供获取CPU使用率的API...

    从注册表中取得CPU负荷,并计算出所占CPU的百分比。DELPHI.zip

    这篇讨论主要聚焦于如何在Delphi编程环境中,通过访问Windows注册表来获取CPU的使用负荷,并进一步计算出CPU的占有率。虽然标签提及了"C#",但根据提供的文件"adCpuUsage.pas"来看,这里我们将探讨的是Delphi的实现...

    C#任务管理器(实现cpu使用率以及动态网格)

    3. **CPU使用率计算**:CPU使用率可以通过获取`Process.TotalProcessorTime`和`Process.UserProcessorTime`属性,并与系统时间进行比较来计算。这些值会随着时间增加,因此需要通过采样和差分计算得出瞬时使用率。 ...

    MATLAB之父 编程实践 中文版

    从给定的信息来看,主要涉及的是《MATLAB之父 编程实践》这本书的中文版。下面将根据这些信息深入探讨MATLAB编程实践中的关键知识点。 ### MATLAB编程基础 MATLAB(Matrix Laboratory)是一种用于算法开发、数据...

    c#获取系统和指定进程的CPU和内存占用率

    在C#编程中,了解如何获取系统和特定进程的CPU及内存占用率是十分重要的,尤其是在进行性能监控或资源管理的场景下。本篇将详细解释如何实现这一功能,并提供相应的代码示例。 首先,我们要关注的是操作系统级别的...

    C++高效编程:内存与性能优化(pdf版)

    《C++高效编程:内存与性能优化》是一本专注于C++编程语言内存管理和性能调优的书籍。本书深入探讨了如何在C++编程中高效地使用内存资源,以及如何进行性能优化,以编写出既高效又优雅的代码。 书籍作者Rene ...

    vc 获取指定进程的cpu占用率和内存使用量

    在VC++环境中,获取指定进程的CPU占用率和内存使用量是常见的系统监控任务,尤其在开发性能分析或系统管理工具时。VS2008提供了丰富的库和API调用来实现这一功能。以下是对这个话题的详细阐述: 首先,我们需要了解...

    易语言纯画板CPU监测

    【易语言纯画板CPU监测】是一个基于易语言开发的程序,主要用于实时监控计算机的CPU使用情况,并通过画板技术动态展示数据曲线图。这个程序的核心功能是获取系统资源信息,特别是CPU的负载数据,然后利用易语言的...

    函数图像生成器&利用CPU画曲线

    在本项目中,我们主要探讨了两个核心主题:一是...以上就是关于“函数图像生成器&利用CPU画曲线”项目的关键知识点,它们涵盖了从用户交互、数学计算到图形渲染的多个层面,体现了编程、算法和计算机图形学的综合运用。

    北理工操作系统一、CPU占用率控制实验报告.docx

    **CPU占用率概念**:CPU占用率是指在一定时间内CPU用于执行任务的时间与总时间的比例。在Windows任务管理器中,该值通常反映的是每秒内CPU的平均占用情况。例如,当某个应用程序在一秒内占用CPU执行了50%的时间,则...

    皮尔逊三型曲线matlab编程

    总的来说,掌握皮尔逊三型曲线的MATLAB编程,不仅能够帮助你深入理解这种统计分布的特性,还能提升你在数据分析项目中的实践能力。通过不断地学习和实践,你将能够更熟练地运用统计学工具解决实际问题。

Global site tag (gtag.js) - Google Analytics