
正文
java计算代码运行内存,java如何计算程序运行时间
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
如何看一段JAVA代码耗了多少内存
可以用 system(命令) 调用 DOS/Windows 命令 获取 正在使用多少 内存 (memory).命令例子:wmic process where name=cmd.exe get WorkingSetSize 这里 cmd.exe 你可替换成 你的程序 名字。
你可以先用内存监控工具,进行监控,看看这个功能到底用多少内存。如果不多,其实都不需要实现你说的代码监控的。如果你要使用代码监控,你可是使用Runtime类的几个属性,MaxMemory、FreeMemory、TotalMemory。
可以直接使用top命令后,查看%MEM的内容。
可以看到进程中每个资源都占用了多少内存:pmap pmap命令可以显示一个或多个进程所使用的内存数量。你可以使用这个工具来了解服务器上的某个进程分配了多少内存,并以此来判断这是否是导致内存瓶颈的原因。
只能查看JAVA 虚拟机占用的内存Runtime.getRuntime().maxMemory() 返回 Java 虚拟机试图使用的最大内存量。Runtime.getRuntime().freeMemory() 返回 Java 虚拟机中的空闲内存量。
相关问答
Q1: JAVA的运行内存怎么看
ms/mx:定义YOUNG+OLD段的总尺寸,ms为JVM启动时YOUNG+OLD的内存大小;mx为最大可占用的YOUNG+OLD内存大小。在用户生产环境上一般将这两个值设为相同,以减少运行期间系统在内存申请上所花的开销。
在JDK6 update 7之后,jdk推出了另外一个工具:jvisualvm,java可视化虚拟机,它不但提供了jconsole类似的功能,还提供了jvm内存和cpu实时诊断,还有手动dump出jvm内存情况,手动执行gc。
可以直接使用top命令后,查看%MEM的内容。
可以用 system(命令) 调用 DOS/Windows 命令 获取 正在使用多少 内存 (memory).命令例子:wmic process where name=cmd.exe get WorkingSetSize 这里 cmd.exe 你可替换成 你的程序 名字。
如果是第一种情况,那你还需要在java内部再起一个进程,通过执行操作系统的shell命令来查看那个进程的运行状态。比如那个外部进程的ID为3119,则执行cat /proc/3119/status | grep VmRSS就可以过滤出该进程的物理内存占用量。
Q2: 为什么Java程序占用的内存比指定的堆栈大小要大
1、是的,想得到一个准确的数字不是那么容易,因为你很难控制本地(Native)部分。你能控制的部分只有堆大小:-Xmx,类占用的内存:-XX:MaxPermSize,还有线程栈:-Xss控制每个线程占用的内存。
2、首先java内存可以大体分为堆内存和栈内存。一般收的内存使用过大是指堆内存使用过大。一般分步骤分析。现在内存过大到底到何种程度。是否引起了GC或者FUll GC。是否影响了正常工作。
3、就是Xmx减去已经用了的内存再减去本次须要的内存。 如果不够就会触发OLD GC。哎,越解释越多。你就记着这个值就是建议内存最大使用值。
4、内存中的栈区处于相对较高的地址以地址的增长方向为上的话,栈地址是向下增长的。栈中分配局部变量空间,堆区是向上增长的用于分配程序员申请的内存空间。
5、另外,栈数据可以共享,详见第3点。堆的优势是可以动态地分配内存大小,生存期也不必事先告诉编译器,Java的垃圾收集器会自动收走这些不再使用的数据。但缺点是,由于要在运行时动态分配内存,存取速度较慢。
Q3: 请问用Java代码,怎样测试一段程序占用了多少内存?
你可以先用内存监控工具,进行监控,看看这个功能到底用多少内存。如果不多,其实都不需要实现你说的代码监控的。如果你要使用代码监控,你可是使用Runtime类的几个属性,MaxMemory、FreeMemory、TotalMemory。
可以直接使用top命令后,查看%MEM的内容。
你也可以用你的程序 进程 PID 号数 调用, 命令是:wmic process where processid=6884 get WorkingSetSize 这里6884你可替换成 你的程序 进程 PID。
如果是第一种情况,那你还需要在java内部再起一个进程,通过执行操作系统的shell命令来查看那个进程的运行状态。比如那个外部进程的ID为3119,则执行cat /proc/3119/status | grep VmRSS就可以过滤出该进程的物理内存占用量。
只能查看JAVA 虚拟机占用的内存Runtime.getRuntime().maxMemory() 返回 Java 虚拟机试图使用的最大内存量。Runtime.getRuntime().freeMemory() 返回 Java 虚拟机中的空闲内存量。
关于java计算代码运行内存和java如何计算程序运行时间的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。








