java - 如何获取 java Process 对象的 MemoryUsage 统计信息

标签 java windows

是否有可能获得 java Process 的当前 RAM 使用情况?这是使用 Runtime.getRuntime().exec(...); 创建的。我正在创建一个 minecraft 服务器实例,我需要监控服务器的资源使用情况。

这正是我创建流程的方式。

private void runStartCommand(){
    try {
        lines = new ArrayList<>();
        String cmd = "cmd.exe /c cd " + service.getLocation() + "& java -jar -Xmx2G -Xms2G "+service.getLocation()+"spigot-1.9.2.jar";
        process = Runtime.getRuntime().exec(cmd);
        input = new BufferedReader(new InputStreamReader(process.getInputStream()),8*1024);
        writer = new BufferedWriter(new OutputStreamWriter(process.getOutputStream()));
        running = true;
    } catch (IOException e) {
        e.printStackTrace();
    }

}

最佳答案

Bukkit 已经为 monitoring and managing Minecraft server performance 提供了自定义插件那应该非常适合你。

通常您会使用 Java Melody 或 JMX 控制台之类的东西来监视应用程序服务器进程。您还可以使用 built-in VisualVM 对其进行检测和监控.

关于java - 如何获取 java Process 对象的 MemoryUsage 统计信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37803993/

相关文章:

java - JDBCTemplate 挂起

c++ - 属性表 (MFC) 的 RTL 布局问题

Windows 批处理脚本 - 查找字符串并回显之后的所有内容

python - 使用 python 在 win 10 上切换 "night light"功能

c++ - 第一次调用 FindWindowEx/EnumChildWindows 后是否缓存了控件树?

java - 实现 X509TrustManager - 将部分验证传递给现有的验证者

java - 关于TestNG的问题

java - 如何在Eclipse中检查WTP版本?

java - 从结果集中提取时出错

javascript - IIS6下运行的Node.js