请问怎样查看java程序占用的内存 比如helloworld小程序,我想知道,运行helloworld时需要多少内存。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 根看其他进程一样看, windows 看任务管理器,linux ps, 要看更加详细 可用jvisualvm, jprofile, jconsole, jstat 用的JV内存Runtime time = Runtime.getRuntime();time.maxMemory() ; // 返回 Java 虚拟机试图使用的最大内存量。time.totalMemory() //返回 Java 虚拟机中的内存总量。 JConsole JConsole是一个基于JMX的GUI工具,用于连接正在运行的JVM,不过此JVM需要使用可管理的模式启动。如果要把一个应用以可管理的形式启动,可以在启动是设置com.sun.management.jmxremote。例如,启动一个可以在本地监控的J2SE的应用Java2Demo ,需输入以下命令: JDK_HOME/bin/java -Dcom.sun.management.jmxremote -jar JDK_HOME/demo/jfc/Java2D/Java2Demo.jar JDK_HOME需要是一个含有JDK5.0的目录。 要启动JConsole,运行 JDK_HOME/bin/jconsole 一个用于连接的对话框将会打开。对话框的Local标签列出了所有本地正在运行的JVM,还包含进程的ID等信息。 Figure 2: Local Tab. JConsole可以以三种方式连接正在运行的JVM: Local:使用JConsole连接一个正在本地系统运行的JVM,并且执行程序的和运行JConsole的需要是同一个用户。JConsole使用文件系统的授权通过RMI连接器连接到平台的MBean服务器上。这种从本地连接的监控能力只有Sun的JDK具有 Remote:使用下面的URL通过RMI连接器连接到一个JMX代理: service:jmx:rmi:///jndi/rmi://hostName:portNum/jmxrmi hostName填入主机名称,portNum为JMX代理启动时指定的端口。JConsole为建立连接,需要在环境变量中设置mx.remote.credentials来指定用户名和密码从而进行授权。 Advanced:使用一个特殊的URL连接JMX代理。一般情况使用自己定制的连接器而不是RMI提供的连接器来连接JMX代理,或者是一个使用JDK1.4的实现了JMX和JMX Rmote的应用。 当JConsole成功建立连接,它从连接上的JMX代理处获取信息,并且以下面几个标签页呈现信息。 Summary tab. 监控JVM和一些监控变量的信息。 Memory tab. 内存使用信息 Threads tab. 线程使用信息 Classes tab. 类调用信息 VM tab. JVM的信息 MBeans tab.所有MBeans的信息MBeans tab展示了所有以一般形式注册到JVM上的MBeans。MBeans tab允许你获取所有的平台信息,包括那些不能从其他标签页获取到的信息。注意,其他标签页上的一些信息也在MBeans这里显示。另外,你可以使用 MBeans标签管理你自己的应用的MBeans 比如jvm占用了X兆内存,但某个.java可能只需要其中的几K。我想知道,.java文件到底使用了多少K。 关于ArrayList如何返回元素索引值 Java setMaximumSize函数问题! 【求助!】javac 无法编译 java与C的socket通信 请教构造FileOutputStream的问题 关于java paint的一点问题,实在没找出答案 JTree有没有双击响应事件的方法亚?我怎末没找到!帮帮忙 谁能给我一个socket的实例???狂放分!! 继承的私有成员,究竟是如何回事呢? 请问"这个符号在JAVA中应怎么表示呢?谢谢 DataFlavor是作什么用的? 求助
要看更加详细 可用jvisualvm, jprofile, jconsole, jstat
Runtime time = Runtime.getRuntime();time.maxMemory() ;
// 返回 Java 虚拟机试图使用的最大内存量。time.totalMemory()
//返回 Java 虚拟机中的内存总量。
JConsole是一个基于JMX的GUI工具,用于连接正在运行的JVM,不过此JVM需要使用可管理的模式启动。如果要把一个应用以可管理的形式启动,可以在启动是设置com.sun.management.jmxremote。例如,启动一个可以在本地监控的J2SE的应用Java2Demo ,需输入以下命令:
JDK_HOME/bin/java -Dcom.sun.management.jmxremote -jar JDK_HOME/demo/jfc/Java2D/Java2Demo.jar
JDK_HOME需要是一个含有JDK5.0的目录。
要启动JConsole,运行
JDK_HOME/bin/jconsole
一个用于连接的对话框将会打开。对话框的Local标签列出了所有本地正在运行的JVM,还包含进程的ID等信息。
Figure 2: Local Tab.
JConsole可以以三种方式连接正在运行的JVM:
Local:使用JConsole连接一个正在本地系统运行的JVM,并且执行程序的和运行JConsole的需要是同一个用户。JConsole使用文件系统的授权通过RMI连接器连接到平台的MBean服务器上。这种从本地连接的监控能力只有Sun的JDK具有 Remote:使用下面的URL通过RMI连接器连接到一个JMX代理:
service:jmx:rmi:///jndi/rmi://hostName:portNum/jmxrmi
hostName填入主机名称,portNum为JMX代理启动时指定的端口。JConsole为建立连接,需要在环境变量中设置mx.remote.credentials来指定用户名和密码从而进行授权。
Advanced:使用一个特殊的URL连接JMX代理。一般情况使用自己定制的连接器而不是RMI提供的连接器来连接JMX代理,或者是一个使用JDK1.4的实现了JMX和JMX Rmote的应用。
当JConsole成功建立连接,它从连接上的JMX代理处获取信息,并且以下面几个标签页呈现信息。
Summary tab. 监控JVM和一些监控变量的信息。 Memory tab. 内存使用信息 Threads tab. 线程使用信息 Classes tab. 类调用信息 VM tab. JVM的信息 MBeans tab.所有MBeans的信息MBeans tab展示了所有以一般形式注册到JVM上的MBeans。MBeans tab允许你获取所有的平台信息,包括那些不能从其他标签页获取到的信息。注意,其他标签页上的一些信息也在MBeans这里显示。另外,你可以使用 MBeans标签管理你自己的应用的MBeans