java程序运行完成之后怎么看它所用的时间和内存?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java程序运行完成之后怎么看它所用的时间和内存?相关的知识,希望对你有一定的参考价值。

你要是用tomcat,启动之后,他会显示用了多长时间 参考技术A 可以使用java监控工具来监测java程序的执行效率,下面介绍两种:
1 jconsole工具使用
1)远程连接进程
2)连接成功后可以观察概览、内存、线程、类、VM概要、MBean
3)可以查看不同区的内存使用情况
2 jvisualvm工具使用
1)远程连接进程
2)登录成功可以查看概述)监视)线程)抽样器。
3)监视:CPU、内存、类、线程
4)通过抽样器可以做内存镜像
另外,还有jps、jstack、jmap、jhat、jstat、hprof等各种工具
工具不在多,选择一款自己用起来最顺手的即可

Java程序占用内存太高了怎么办?

自己编的游戏程序,开始之后 10 多个线程一块启动,内存占用从 20,000 升到 300,000,CPU 使用率升到了50%,造成游戏时卡顿严重,求怎么解决。100分

    先看下是否有内存泄露,简单的方法就是隔一段时间检查下内存,看看是否是持续上升。

    然后看下资源是否可以优化,比如你加载的图片有没有resize过,尽可能减少资源的内存消耗。

    游戏卡顿最主要的是FPS帧率太低,把帧率统计输出来看下。检查下UI线程里或者OpenGL线程里是否做了I/O操作,这个是造成卡顿的主要原因。把I/O操作全部放入工作线程中,UI线程只做数据读取和渲染。这样帧率就可以提高了

追问

那个,我是 Java 新手,你说的我看懂了但是具体怎么做?
程序具体表现为点击 Start 按钮后内存瞬间上升 300,000K,但是没有再持续上升。
加载的图片都是用 JLabel.setIcon(icon); 的方式加载,并没有使用绘图工具,所以 resize 的方法该怎么用才好?还有些其他问题被限制字数了。

追答

点击start瞬间上升,那么说明你在点击start之前,初始化该做的没有做完吧,比如图片的加载。你初始化的时候把需要用的资源都先load进来,看看内存有多少,再点击start看看有没有内存暴涨

追问

运行就开始所有线程的话刚打开就是内存 320,000 K ,点击 Start 之后还是那么多。

追答

内存是资源造成的,可以看下图片资源在load进来的时候是不是还可以再把尺寸调小点。卡顿是I/O造成的,你看下UI线程里有没有做耗时的操作

追问

玩家 10*10 像素,AI 一样,子弹 2*2 像素的,只是玩家方向不同图片方向也不一样,AI 没有图片就一蓝色方块,子弹红色的。IO 是什么?

参考技术A 1.线程有无休眠时间
2.休眠时间的时长设置的是否合理。

我猜测你的程序是要不停的运行来实现某种功能。这要休眠时间的设定就显得很重要了。

还有就是你的功能中是否有IO,是否有耗内存的代码块,这些要看具体的才行。单纯是线程的话,注意上面两点就可以了。追问

另外 FPS 我估计也就 2-3 的样子……

参考技术B 这个具体要看代码. java 本身不会占用太多

以上是关于java程序运行完成之后怎么看它所用的时间和内存?的主要内容,如果未能解决你的问题,请参考以下文章

dos下怎么运行java程序

如何使用eclipse新建并编译,运行Java程序

Linux下调试编写并调试C语言程序,怎么查看它的内存和CPU信息?GDB中可以实现吗?

怎么查看java程序运行的峰值内存消耗(含虚拟机)和CPU消耗(ms)

没有足够的java内存是啥意思,怎么解决

Java程序占用内存太高了怎么办?