`
java2000.net
  • 浏览: 651526 次
  • 性别: Icon_minigender_1
  • 来自: 天津
社区版块
存档分类
最新评论

编程之美-JAVA控制CPU的使用率

    博客分类:
  • JAVA
阅读更多

 

 

JAVA代码,里面的循环和休眠时间,请根据你的机器情况修改,我的大致能稳定在43-44%之间。

这个是粗的代码,后面我会继续完善,实现那个完美曲线。

 

public class T {

   public static void main(String[] args) throws Exception {
     for (;;) {
      for (int i = 0; i < 96000000; i++)
         ;
      Thread.sleep(10);
     }
   }
 }

 

 

下面的代码可以控制比例

 /**
  * 编程之美,JAVA控制CPU的使用率(2),精确控制比例。
  * 
  * @author 赵学庆,Java世纪网(java2000.net)
  * 
  */
 public class T {

   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);
     }
   }
 }
 

 

下面的代码可以生成还算完美的正弦曲线

/**
 * 编程之美,JAVA控制CPU的使用率(2),完美曲线
 * 
 * @author 赵学庆,Java世纪网(java2000.net)
 * 
 */
public class T {

  public static void main(String[] args) throws Exception {
    // 角度的分割
    final double SPLIT = 0.01;
    //
    // 2PI分割的次数,也就是2/0.01个,正好是一周
    final int COUNT = (int) (2 / SPLIT);
    final double PI = Math.PI;
    // 时间间隔
    final int INTERVAL = 200;
    long[] busySpan = new long[COUNT];
    long[] idleSpan = new long[COUNT];
    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;
    }
    long startTime = 0;
    int j = 0;
    while (true) {
      j = j % COUNT;
      startTime = System.currentTimeMillis();
      while (System.currentTimeMillis() - startTime < busySpan[j])
        ;
      Thread.sleep(idleSpan[j]);
      j++;
    }
  }
}
 

 

 

 

8
0
分享到:
评论
4 楼 朗拿颠老 2009-09-16  
  作为面试题
3 楼 EXvision 2008-11-03  
正弦曲线。。。太有意思了。。
2 楼 xiaocong1001 2008-11-03  
coding in art   
1 楼 nowind 2008-10-26  
哈哈,太强了,这都能想出来

相关推荐

    商业编程-源码-获取CPU使用率.zip

    本资源“商业编程-源码-获取CPU使用率.zip”提供了实现这一功能的源代码,这对于开发者来说是宝贵的参考资料。下面将详细讲解如何在不同操作系统和编程语言中获取CPU使用率,并探讨其背后的技术原理。 1. **Windows...

    java获得CPU使用率.doc

    本文将详细介绍如何在Windows环境下使用纯Java代码(不依赖JNI)获取当前PC的CPU使用率。 #### 二、关键技术点 1. **MonitorInfoBean 类的设计**: - 该类封装了系统监控所需的主要数据,包括但不限于可使用内存...

    java 绘制CPU使用率图形 源代码

    在Java编程语言中,开发一个绘制CPU使用率图形的程序是一项技术挑战,它涉及到系统监控、图形用户界面(GUI)以及实时数据处理等多方面的知识。这个程序的主要目的是模拟任务管理器的部分功能,显示计算机的CPU使用...

    cpu-use_CPU使用率_源码

    在IT领域,CPU使用率是衡量计算机性能的重要指标之一,特别是在服务器管理和系统优化的过程中。本文将深入探讨如何在Windows操作系统中计算每个CPU的核心使用率,以及这个知识点在实际应用中的重要性。 首先,CPU...

    用java获取CPU占用率

    代码中`getCpuRateForLinux()`方法试图打开并读取`/proc/stat`,然后解析其中的数据来计算CPU的使用率。这一过程通常涉及对`user`, `nice`, `system`, `idle`, 和 `iowait`等字段的解读,这些字段代表了不同类型的...

    70-Java程序CPU占用1001

    找到CPU使用率最高的线程,记录其TID(线程ID)。 3. **将TID转换为16进制** 为了与`jstack`命令配合使用,我们通常需要将线程ID(TID)转换为16进制。可以使用在线工具或者简单的编程语言(如Python)来完成这个...

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

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

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

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

    java 通过jni查看windows的CPU利用率的问题

    标题“Java通过JNI查看Windows的CPU利用率的问题”涉及到的是Java编程语言如何利用Java Native Interface (JNI) 这一技术来获取Windows操作系统的CPU使用情况。JNI是Java平台标准的一部分,它允许Java代码和其他语言...

    Java 获取系统信息,包括CPU使用率、硬盘大小、网卡状态、系统信息等

    本文将详细讲解如何利用Java获取CPU使用率、硬盘大小、网卡状态以及系统信息,并结合给定的文件资源进行讨论。 首先,我们需要引入一个名为Sigar(System Information Gatherer and Reporter)的库,它是一个跨平台...

    获取cpu使用率和内存使用情况

    在IT领域,实时监控系统资源,尤其是CPU使用率和内存使用情况,对于开发者和系统管理员来说至关重要。这有助于诊断性能瓶颈、优化代码以及确保系统的稳定运行。以下是对标题和描述中涉及的知识点的详细说明: 1. **...

    用jni获得cpu和内存使用率

    对于Windows,CPU使用率可以通过查询性能对象“Processor”下的“% Processor Time”计数器获取,内存使用率则可以从“Memory”对象的“% Committed Bytes In Use”计数器读取。Windows API如`CreateToolhelp32...

    java(jni)获得CPU、内存使用率 绝对可用

    CPU使用率是指CPU在一段时间内执行非空闲任务的比例,通常以百分比表示。内存使用率则反映了系统分配给进程的内存在当前时刻被占用的程度。在Java中,我们通常使用`java.lang.management`包中的`...

    模拟CPU使用率曲线

    在IT领域,模拟CPU使用率曲线是一项重要的性能监控任务,它可以帮助我们理解系统的负载情况,优化资源分配,以及排查性能问题。"模拟CPU利用率的曲线"这个项目提供了一个直观的工具,其效果与Windows系统内置的性能...

    java并发编程2

    Java并发编程是Java开发中的重要领域,特别是在多核处理器和分布式系统中,高效地利用并发可以极大地提升程序的性能和响应速度。以下是对标题和描述中所提及的几个知识点的详细解释: 1. **线程与并发** - **线程*...

    java优化编程 java优化编程 java优化编程

    监控内容包括CPU使用率、内存分配、线程状态等。 9. **数据库连接优化**:在Java应用中,数据库连接管理也是关键。使用连接池(如C3P0、HikariCP)可以有效管理数据库连接,减少创建和销毁连接的开销。 10. **网络...

    控制cpu的占用率

    例如,`top`、`htop`(Linux)和Task Manager(Windows)等命令行工具可以实时查看各进程的CPU使用情况。此外,还有如`perf`(Linux)这样的性能分析工具,可以详细追踪CPU周期,找出性能瓶颈。 对于【标签】中的...

    用java获取cpu占用

    除了Java自带的API,还可以使用第三方库如Sigar (System Information Gatherer and Reporter) 来获取更详细的系统信息,包括CPU使用率。Sigar 提供了跨平台的接口,简化了获取此类信息的过程。然而,这也意味着引入...

    使用Java进行SNMP编程-SNMP4J-代码实例

    Java中的SNMP编程是网络管理员和服务器监控人员常用的技术之一。SNMP(简单网络管理协议)是一种用于收集和组织关于计算机网络中设备状态信息的协议,它能够帮助网络管理员监测网络性能、发现设备问题、管理网络配置...

Global site tag (gtag.js) - Google Analytics