当前位置:首页 > 内存 > 正文

java应用内存使用率

  • 内存
  • 2024-09-03 17:39:03
  • 6924

一、一个开发java的人需要多大内存?至少4G。
分析:
Java开发需要安装jdk、eclipse、oracle等软件;
Java运行需要tomcat、JVM以及程序的运行时内存;
以上软件基本都能运行那样的话,很可能需要2G以上的内存,而且电脑本身也需要一部分,所以最低配置是4G。建议使用6G或8G进行开发。


二、如何监控Java应用程序的Windows内存使用情况应用程序不知道所有这些活动。它只知道自己的虚拟地址空间。但是,如果主内存中当前的页面集(称为驻留集)小于实际使用的页面集(称为工作集),则应用程序性能可能会迅速显着下降。(不幸的是,正如您将在本文中看到的,我们将讨论的工具经常互换使用这两个术语,即使它们指的是完全不同的事物。)
TaskManager和PerfMon
让我们首先检查一下最常用的两个工具:TaskManager和PerfMon。这两个工具都随Windows一起提供,因此更容易上手。
​TaskManager
​TaskManager是一个非常常见的Windows进程监控程序。您可以使用常用的Ctrl-Alt-Delete组合键或右键单击任务栏来启动它。Process选项卡显示最详细的信息,如图2所示。
图nagerProcess选项卡
图2中显示的列已通过选择View-->SelectColumns进行了调整。有些列标题非常模糊,但每列的定义可以在TaskManager帮助中找到。与进程内存使用情况最密切相关的计数器包括:
MemUsage:在线帮助将其称为进程的工作集(尽管很多人称其为驻留集)——驻留在页集主内存中的数据量。但是,该值包括可以与其他进程共享的页面,因此应注意避免重复计算。例如,如果要计算共享同一DLL的两个进程的总内存使用量,则不能只添加“内存使用量”值。
PeakMemUsage(内存使用峰值):自进程启动以来MemUsage(内存使用)字段的最大值。
PageFaults:自进程启动以来要访问的页面不在主内存中的总次数。
VMSize(虚拟内存大小):在线帮助将此称为“分配给进程的私有虚拟内存量”。如果进程保留内存而不这样做,则该值与总地址空间的大小有很大不同。
重要的是要理解,尽管Windows文档将MemUsage(内存使用情况)称为工作集,但在这种情况下,它实际上指的是许多人所说的驻留集。您可以在MemoryManagementReference词汇表中找到这些术语的定义(请参阅参考资料)。工作集更一般的含义是指进程在某一点需要位于内存中以避免页面操作的那些页面的逻辑概念。
PerfMon
Windows附带的另一个Microsoft工具是PerfMon,它监视各种计数器,从打印队列到电话呼叫。PerfMon通常位于系统路径中,因此您可以通过在命令行中键入perfmon来启动它。该工具的优点是它以图形方式显示计数器,可以轻松查看计数器随时间的变化情况。
请单击PerfMon窗口上方工具栏中的+按钮,这将打开一个对话框,供您选择要监视的计数器,如图3a所示。计数器根据性能对象分为不同的类别。与内存使用最密切相关的两个类是内存和进程。选择一个计数器并单击“解释”按钮以查看计数器定义。这些说明出现在主对话框下方的单独窗口中。
三、java工程中重启之后消耗CPU30%左右,但是执行12小时之后,应用服务器CPU消耗90%,请问可能是什么原因呢?提问者您好:
1这种情况很可能是程序出现死循环,内存也会增加。
2.如果用户很多,很可能是数据库没有关闭什么的。
3如果使用IO流,IO流使用后可能不会关闭,导致内存增加。和ServerSocket引起的长连接或无限while循环(true)。5.由于不正确的大型数据库查询,比如查询几个大表导致查询速度非常慢,然后不关闭数据库连接。6.线程线程可能会死锁,从而导致CPU峰值。