关于编程之美,控制CPU的使用率,让CPU正弦曲线运行的问题

lzslywl 2013-04-03 10:52:14
我现在有一个问题就是要把CPU的使用率曲线画到图形中去,比如CPU呈正弦曲线运行,在一个图形窗口中画出这个运行曲线,不知道怎么用java实现,请各位大神指点!
...全文
301 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
lzslywl 2013-04-05
  • 打赏
  • 举报
回复
引用 2 楼 huhui_bj 的回复:
不好意思,是我理解错了你的意思,因为一看到你的标题是“编程之美……”题目还没看完,我就以为你要控制cpu的利用率。 你的问题我想可以这样做,首先,你用java实时获得当前系统cpu的利用率,代码我已经帮你找到了,出自http://bbs.csdn.net/topics/320248202 你可以用一个线程,每隔一段时间调用这个函数,获取cpu的利用率,然后把这个……
谢谢您给的意见,我现在写了如下代码,希望您能帮我改一改! import java.awt.*; class myFrame extends Frame { static int x = 0; long[] busySpan = new long[200]; long[] idleSpan = new long[200]; int rate = 0; long startTime = 0; int j = 0; public void compute() { final double SPLIT = 0.01; final int COUNT = (int) (2 / SPLIT); final double PI = Math.PI; final int INTERVAL = 200; int half = INTERVAL / 2; double radian = 0.0; for (int i = 0; i < COUNT; i++) { busySpan[i] = (long) (half + (Math.sin(PI * radian) * half)); idleSpan[i] = INTERVAL - busySpan[i]; radian += SPLIT; } } public void paint(Graphics g) { g.setColor(Color.red); while(true) { j = j % 200; startTime = System.currentTimeMillis(); while (System.currentTimeMillis() - startTime < busySpan[j]) ; Thread.sleep(idleSpan[j]); rate = (int)(busySpan[j] / (busySpan[j] + idleSpan[j])); j++; g.fillRect(x ++,rate,2,2); } } public static void main(String[] args) throws Exception { myFrame myf = new myFrame(); myf.setBounds(200,200,640,480); myf.setVisible(true); } }
最美的词 2013-04-03
  • 打赏
  • 举报
回复

package com.hh.cpu;

public class CPUTest {
	public static void main(String[] args) {
		int busyTime = 10;
		int idleTime = busyTime;
		long startTime = 0;
		while (true) {
			startTime = System.currentTimeMillis();
			// busy loop
			while ((System.currentTimeMillis() - startTime) <= busyTime)
				;
			// idle loop
			try {
				Thread.sleep(idleTime);
			} catch (InterruptedException e) {
				System.out.println(e);
			}
		}
	}
}
这段代码,在单核的cpu下CPU利用率控制在50%,代码出自http://walsh.iteye.com/blog/446136
最美的词 2013-04-03
  • 打赏
  • 举报
回复
不好意思,是我理解错了你的意思,因为一看到你的标题是“编程之美……”题目还没看完,我就以为你要控制cpu的利用率。 你的问题我想可以这样做,首先,你用java实时获得当前系统cpu的利用率,代码我已经帮你找到了,出自http://bbs.csdn.net/topics/320248202 你可以用一个线程,每隔一段时间调用这个函数,获取cpu的利用率,然后把这个数值,不断地在表格中绘出,表格可以用jFreeChart,里面有各种各样的表,你只要将cpu利用率这个数值输入,jFreeChart会帮你在一个图形界面中画出线

23,404

社区成员

发帖
与我相关
我的任务
社区描述
Java 非技术区
社区管理员
  • 非技术区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧