我正在尝试优化应用程序的内存使用情况.不幸的是,使用-Dcom.sun.management.jmxremote运行我的应用程序并通过VisualVM连接它对堆使用情况有很大影响.起初我认为这是我的应用程序问题,直到我写了一个非常简单的程序来确认它确实是JMX的开销.以下是活动的图像.

阅读this之后,我开始明白这是由于VisualVM检索数据的方式,即通过连续轮询连接的应用程序.我通过查看VisualVM的内存采样器来证实了这一点. RMI TCP连接(n)线程分配180kb /秒.

我的问题是,有没有办法减少VisualVM的堆使用影响?更改轮询间隔可能不是更好,因为我对堆信息感兴趣.如果这不可能,我们可以排除用于VisualVM的数据吗?至少我想更专注于我的应用程序.

运行代码

Object object = new Object();
synchronized (object) {
    object.wait();
}

VisualVM的堆监视器活动

解决方法

最简单的方法是减少轮询间隔.影响与获取数据的比率成正比.

我所做的是使用yourkit,它可以在本机内存中执行所有操作,因此对堆没有影响.

java – 如何减少VisualVM对堆使用的影响?的更多相关文章

  1. ios – 在应用程序运行时检查内存使用情况

    在运行我的应用程序时,我有时会得到内存警告.它并不总是发生在代码中的相同位置,但我怀疑它与从我的应用程序外部分配的内存有关系;即如果在后台运行的应用程序有很多应用程序,我将在早期获得内存警告,如果在后台没有运行应用程序,我将不会收到警告.>有什么方法可以用来检查我的应用程序在某一点使用了多少内存?>有没有一种方法可以用来检查机器在某一时刻使用了多少内存?

  2. 如何找出Android 2的位图有多少可用堆大小?*?

    我们的应用程序使用了很多位图.它适用于例如G1,XOOM.但是在HTCDesire上有一个OutOfMemory错误.在代码中我们使用try/catch并且所有设备抛出异常,但HTC只是在没有OOM异常的情况下杀死应用程序.我们将位图的内存限制在12Mb,似乎这个解决方案解决了问题,但客户仍然在HTCDesireHD上遇到问题.即使有12Mb的限制也有OOM.这是日志:AFAIK设备有不同的堆大小限制.在我看来,系统应至少提供16MB,但我们的OOM为12mb.我的问题是:如何找出Android2的位图可

  3. android – 确定Activity的可用堆空间(防止OutOfMemoryException)

    我有一个Activity,它将一个文件从外部存储器加载到内存中,并在内存中进行一些解析/操作/等操作.在我加载它之前,我想猜测这样做是否会导致OutOfMemoryException并使Activity崩溃从上面提到的答案中,我提出:所以,问题:1)我疯了吗?2)如何从MemoryInfo对象中总计值来估计活动/任务的堆使用情况?3)Debug是否始终存在或仅在调试时?解决方法您可以参考此链接.对您面临的同一问题进行全面研究.OOMRESEACH

  4. 详解JavaScript栈内存与堆内存

    这篇文章主要介绍了JavaScript栈内存与堆内存,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

  5. windows – 监视桌面堆内存

    有没有办法弄清楚哪个应用程序正在耗尽所有桌面堆内存?有关“桌面堆”的说明,请参阅thisMSDNblog.编辑:如果您不知道“桌面堆内存”是什么,请不要回答.EDIT2:如果您不知道“桌面堆内存”是什么,请不要投票来关闭问题.根据这篇blog帖子,您应该查找用户对象.要查找错误的应用程序,可以在ProcessExplorer中配置USERObjects列.然后按用户对象降序排序.用户对象是所有GUI对象,如Windows,工具栏,图标,光标……

  6. 内存管理 – 如何在UWP App运行时查看(近似)内存使用情况

    根据DiagnosingmemoryissueswiththenewMemoryUsageToolinVisualStudio的这篇文章:1.MemorycapsonPhonedevices:InparticularforPhone,therearespecificmemorylimitsenforcedonanapplicationbasedonthesizeofthememoryinthede

  7. 内存 – Ubuntu如何检测OOM杀手是否已经运行

    我们使用Nagios来监控我们的服务器.现在..linux使用我们提供的所有RAM,因此无法检测我们是否即将耗尽内存.由于内存使用过多,我们有几次服务器崩溃.有没有办法检测ubuntu是否启动了OOM杀手?/RJ你无法看到OOM何时经过,唯一的方法是检查日志并希望它在那里.有一些工具可以检查Nagios的内存使用情况,我个人使用check_mem.pl

  8. ubuntu – 非堆内存泄漏JVM

    我在oraclejava虚拟机上运行的ubuntu服务器上设置了glassfishv4.0,并且jvm进程驻留内存大小(通过“top”命令获得)长大,直到jvm没有内存来创建新线程.是)我有的:>具有1GbRAM和1.4GHz处理器的VPS服务器(1Core)>UbuntuServer12.04>Java(TM)SE运行时环境(版本1.7.0_51-b13)>JavaHotSpot(TM)64位服

  9. CentOS详解top命令各个数据的含义

    负值表示高优先级,正值表示低优先级VIRT进程使用的虚拟内存总量,单位kb。监控java线程数:ps-eLf|grepjava|wc-l监控网络客户连接数:netstat-n|greptcp|grep侦听端口|wc-l上面两个命令,可改动grep的参数,来达到更细致的监控要求。

  10. windows-server-2003 – 最便宜的运行SQL服务器的方法?

    我知道两台服务器的主机基本相同,一台用于升级,一台用于生产;似乎是浪费处理能力,但这就是它的方式.所以我需要一些版本的sqlServer,它们至少会利用多核和4gb内存.在这里实施最便宜的解决方案是什么?我可以每月500美元的价格从东道主那里租下副本,但这对我来说似乎很荒谬.在Google上搜索可以花250美元找到sqlServer2005的物理副本.这是合法的/它会起作用吗?

随机推荐

  1. 基于EJB技术的商务预订系统的开发

    用EJB结构开发的应用程序是可伸缩的、事务型的、多用户安全的。总的来说,EJB是一个组件事务监控的标准服务器端的组件模型。基于EJB技术的系统结构模型EJB结构是一个服务端组件结构,是一个层次性结构,其结构模型如图1所示。图2:商务预订系统的构架EntityBean是为了现实世界的对象建造的模型,这些对象通常是数据库的一些持久记录。

  2. Java利用POI实现导入导出Excel表格

    这篇文章主要为大家详细介绍了Java利用POI实现导入导出Excel表格,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

  3. Mybatis分页插件PageHelper手写实现示例

    这篇文章主要为大家介绍了Mybatis分页插件PageHelper手写实现示例,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

  4. (jsp/html)网页上嵌入播放器(常用播放器代码整理)

    网页上嵌入播放器,只要在HTML上添加以上代码就OK了,下面整理了一些常用的播放器代码,总有一款适合你,感兴趣的朋友可以参考下哈,希望对你有所帮助

  5. Java 阻塞队列BlockingQueue详解

    本文详细介绍了BlockingQueue家庭中的所有成员,包括他们各自的功能以及常见使用场景,通过实例代码介绍了Java 阻塞队列BlockingQueue的相关知识,需要的朋友可以参考下

  6. Java异常Exception详细讲解

    异常就是不正常,比如当我们身体出现了异常我们会根据身体情况选择喝开水、吃药、看病、等 异常处理方法。 java异常处理机制是我们java语言使用异常处理机制为程序提供了错误处理的能力,程序出现的错误,程序可以安全的退出,以保证程序正常的运行等

  7. Java Bean 作用域及它的几种类型介绍

    这篇文章主要介绍了Java Bean作用域及它的几种类型介绍,Spring框架作为一个管理Bean的IoC容器,那么Bean自然是Spring中的重要资源了,那Bean的作用域又是什么,接下来我们一起进入文章详细学习吧

  8. 面试突击之跨域问题的解决方案详解

    跨域问题本质是浏览器的一种保护机制,它的初衷是为了保证用户的安全,防止恶意网站窃取数据。那怎么解决这个问题呢?接下来我们一起来看

  9. Mybatis-Plus接口BaseMapper与Services使用详解

    这篇文章主要为大家介绍了Mybatis-Plus接口BaseMapper与Services使用详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

  10. mybatis-plus雪花算法增强idworker的实现

    今天聊聊在mybatis-plus中引入分布式ID生成框架idworker,进一步增强实现生成分布式唯一ID,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

返回
顶部