相关疑难解决方法(0)

获取操作系统级别的系统信息

我目前正在构建一个Java应用程序,最终可能会在许多不同的平台上运行,但主要是Solaris,Linux和Windows的变种.

有没有人能够成功提取信息,例如当前使用的磁盘空间,CPU利用率和底层操作系统中使用的内存?那么Java应用程序本身正在消耗什么呢?

我更希望在不使用JNI的情况下获取此信息.

java memory resources system

230
推荐指数
10
解决办法
22万
查看次数

使用OperatingSystemMXBean获取CPU使用率

我正在尝试使用Java来获取当前运行的Java虚拟机所使用的CPU百分比.我的研究指出我使用这门com.sun.management.OperatingSystemMXBean课程.以下是在线示例,我写了以下内容:

import java.lang.management.ManagementFactory;
import com.sun.management.OperatingSystemMXBean;


public class TestClass {

public static void main (String[] args) {
    OperatingSystemMXBean bean = (com.sun.management.OperatingSystemMXBean) ManagementFactory.getOperatingSystemMXBean();

    System.out.println(bean.getProcessCpuLoad());
    System.out.println(bean.getSystemCpuLoad());

    }

}
Run Code Online (Sandbox Code Playgroud)

在两台机器上测试后,我无法停止获得-1.0两个调用的结果.我尝试通过各种方法使用64位和32位版本的Java 7和6来运行此代码.不过,我得到的是打印出的-1.0该,根据的Javadoc,

All values betweens 0.0 and 1.0 are possible depending of the activities going on in the system. If the system recent cpu usage is not available, the method returns a negative value.

我不知道这里还能做什么.获得CPU负载至关重要,我想避免使用像Sigar这样的其他库.有人对此问题有任何建议或有任何见解吗?

java cpu

13
推荐指数
1
解决办法
1万
查看次数

如何监控java中的空闲内存(包括缓冲区和缓存)?

我已经搜索过可能的解决方案,例如如何在Java中监控计算机的CPU,内存和磁盘使用情况?.但在缓冲区和缓存中花费的内存在任何地方都没有提到

例如,在linux上,free -m的输出:

             total       used       free     shared    buffers     cached
Mem:          2011       1835        175          0        309        847
-/+ buffers/cache:        678       1333
Swap:         1998          0       1998

我已经测试了sigar的输出,它将可用内存报告为175 MB.

这个问题的原因是如何检测OS何时剩余的内存很少?在之前的输出中free -m,175 MB似乎相当低; 但是通过添加缓冲区和缓存,很明显可用内存实际上是2 GB中的1333 MB.

总结一下,使用java,可以获得1333 MB的值作为空闲内存的值吗?正如我已经提到的,到目前为止我只知道如何获得175 MB的价值.

java monitoring

11
推荐指数
1
解决办法
2152
查看次数

获取内存和CPU使用率

我想获得总物理内存,CPU使用率和使用的内存量.我已经研究过Runtime.freeMemory(),但这不是整个系统的免费记忆.

java cpu-usage memory-footprint

9
推荐指数
2
解决办法
2万
查看次数

如何获取Java7应用程序的CPU,RAM和网络使用情况

我发现这篇较旧的文章如何监视计算机 -cpu -memory-and-disk-usage-in-java并且有问题,如果java 7中有新内容我想获得当前的CPU- ,RAM-和netzwork-定期使用我的应用程序.它必须适用于linux(mac)和windows.数据不能非常详细,3个值就足够了(cpu:10%,Ram 4%,Network 40%).如果数据仅适用于应用程序而不是整个操作系统,那将会很酷,但这也可行.

感谢帮助

java cpu ram networking java-7

8
推荐指数
1
解决办法
1万
查看次数

java - 我们可以有一个弱线程吗?

我们可以对正在运行的线程进行弱引用,以便在低性能CPU中终止吗?

我的意思是,做这样的工作吗?

WeakReference<Thread> ref = new WeakReference<Thread>(new Thread(){
    public void run(){
        while(true){ /* your code */ }
    }
});
Run Code Online (Sandbox Code Playgroud)

这样,我想要一个线程具有低优先级来执行,我的意思是当CPU性能为低并且CPU完全使用时,线程的执行会自动终止.

有些线程不具有高优先级,应该以低CPU性能中断和终止.

java multithreading weak-references

5
推荐指数
1
解决办法
286
查看次数

NLG - 使用 simplenlg 创建文本描述

我正在尝试在 NLG 的帮助下生成产品描述。例如,如果我指定产品的属性(例如手机),例如其操作系统RAM处理器显示器电池等,它应该向我输出手机的可读描述。我看到有一些付费服务(Quill、Wordsmith 等)也是如此。然后我遇到了 NLG 的开源 Java API - simplenlg。我看到如何通过指定句子短语和特征(如时态、询问等)来创建句子,但没有看到从文本创建描述的选项。

有谁知道如何使用 simplenlg 从单词创建文本描述?

是否有其他工具/框架/API 可用于完成此任务(不限于 Java)?

java nlg simplenlg

3
推荐指数
1
解决办法
2672
查看次数

如何使用java获取CPU使用率?

我想获取CPU使用率来使用java连续更新我的数据库。在第一个循环中,此代码可读取正确的 CPU 使用情况。之后,它返回小于 0 的错误值。所以,我卡住了。

我用的是jdk 1.8.124。

请让我知道如何连续获取CPU使用率。

import oshi.SystemInfo;
import oshi.hardware.CentralProcessor;
import oshi.hardware.HardwareAbstractionLayer;
Run Code Online (Sandbox Code Playgroud)

源代码

public static void main(String[] args) {
  OperatingSystemMXBean bean = (com.sun.management.OperatingSystemMXBean) ManagementFactory
      .getOperatingSystemMXBean();

  while (true) {
    System.out.println(bean.getProcessCpuLoad());
    System.out.println(bean.getSystemCpuLoad());
        try {
            Thread.sleep(3000);
        }
        catch (Exception e){
            System.out.println(e.toString());
            break;
        }
  }

}
Run Code Online (Sandbox Code Playgroud)

java cpu-usage oshi

2
推荐指数
1
解决办法
6097
查看次数

在C++或Java中有没有办法获得CPU使用率?

我想写一个小程序只是为了显示CPU使用率百分比,就像任务管理器一样.我知道中级C++和Java.有没有办法用这两种语言做到这一点?如果是这样,也许是一个简短的例子 我看到了一些C++命令的页面,但我无法做出正面或反面.

我在一台计算机上使用Windows 7,在另一台计算机上使用XP.至于多核响应,我只想像任务管理器那样显示CPU使用百分比,即使使用多核处理器也是如此.

c++ java cpu-usage

0
推荐指数
1
解决办法
1128
查看次数