相关疑难解决方法(0)

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

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

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

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

java memory resources system

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

如何通过Java的Runtime api获取我的Java程序使用的内存?

有类似的问题,但他们似乎避免回答这个具体的问题.如何通过Java的Runtime api 获取我的Java程序使用的内存?

这里的答案表明我可以这样做:

System.out.println("KB: " + (double) (Runtime.getRuntime().totalMemory() - Runtime.getRuntime().freeMemory()) / 1024);
Run Code Online (Sandbox Code Playgroud)

但无论我运行哪个程序,这总是返回相同的数字.例如,下面我有一个程序,无论我在地图中放了多少个数字,内存使用量保持不变.

package memoryTest;

import java.util.HashMap;
import java.util.Map;

public class MemoryTest {

    static Map<Integer, NewObject> map = new HashMap<Integer, NewObject>();

    public static void main(String[] args){

        System.out.println("KB: " + (double) (Runtime.getRuntime().totalMemory() - Runtime.getRuntime().freeMemory()) / 1024);
        fillMemory(25);

        System.out.println("KB: " + (double) (Runtime.getRuntime().totalMemory() - Runtime.getRuntime().freeMemory()) / 1024);
    }

    static int j=0;
    public static void fillMemory(int i){

        for(int k=0; k< 2000; k++)
            map.put(j++, new NewObject());

    }


    public static class …
Run Code Online (Sandbox Code Playgroud)

java memory api runtime

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

标签 统计

java ×2

memory ×2

api ×1

resources ×1

runtime ×1

system ×1