当前位置: 首页 > 知识库问答 >
问题:

在Java7下,jmap的运行速度较慢,JVM的运行速度较慢

冯阳云
2023-03-14

我们已经使用jmap在Java 6下运行的大型多服务器应用程序上测量堆大小大约2年了。我们每分钟测量一次。每次测量所用的时间(经过的时间)不到1秒。

我们现在正在Java 7下测试同一个应用程序。现在突然之间,jmap通常需要10秒、20秒,有时甚至更长时间,而且它似乎慢了下来(甚至可能停止!)在那段时间里,JVM。

我们在jmap输出中看到的唯一区别(Java6和Java7之间)是关于有多少字符串被插入的附加信息。(这似乎是慢的部分。)

有人知道发生了什么吗,或者jmap或Java7中发生了什么变化,可能会导致这种情况吗?

我们正在使用“jstat-gc”进行测试,以获得相同的信息,到目前为止,这似乎要快得多,而且似乎不会导致我们在jmap中看到的应用程序速度减慢。对于如何快速测量堆大小,还有其他建议吗?

欢迎有任何想法,提前谢谢。

共有1个答案

勾岳
2023-03-14

我个人非常喜欢Oracle任务控制来监控堆大小。它有更多的选项,但是它非常适合监控堆大小。

 类似资料:
  • 这最好用一段视频来解释(或者看下面的gif): 你会注意到Karma progress记者报告说测试只需几毫秒,但显然要花很长时间... 我在推特上说了这件事,然后被告知 所以,我的问题是,为什么它报告说它跑得超快,但实际上不是跑得超快,我怎样才能让它跑得快?

  • HiI在网上看到了一个计算一个数的不同素因子的答案,它看起来不是最优的。所以我试图改进它,但在一个简单的基准测试中,我的变体比原始版本慢得多。 该算法计算一个数的不同质因数。最初使用一个HashSet来收集因子,然后使用size来获得它们的数目。我的“改进”版本使用了一个int计数器,并将while循环分解为if/while以避免不必要的调用。 更新:tl/dr(有关详细信息,请参阅接受的答案)

  • 我有一个多项目(2个模块),它的建设需要大约1/2分钟每次。当我在Android Studio按下Run的时候,我每次都要等待才能重建app,慢得不得了。每次都用了6/8分钟。 在Android Studio中有没有可能实现构建过程的自动化?或者对于如何让这个过程更快,你有什么建议吗? 这是我的build.gradle文件(应用程序模块):

  • 目前,我的网络应用程序运行在两个基于云的视窗2012 R2服务器上——一个运行Tomcat,一个运行SQL服务器Express。视窗服务器是4GB英特尔XEON(R)CPU E5-2660 v2@2.20 Gghz 我正在Azure的PaaS(平台即服务)上测试我的应用程序。我用Tomcat 9.0创建了一个Linux Web应用程序来保存应用程序(P1V2),用Azure SQL Server保

  • 问题内容: 我有一个SQL Server 2005数据库,我尝试将索引放在适当的字段上,以加快具有数百万行(只有3列)的表中记录的速度,但是现在执行时间 更长 !(例如1小时对13分钟) 我与表之间有关系,我过滤依据的列在另一个表中。例如 顺便说一句,我也尝试过: 尽管它看起来比第一个要快一些,但是使用索引仍然要比不使用索引慢得多。 我在这些字段上创建了索引: 我的.ldf文件在期间增长了很多。

  • 问题内容: 它们看起来几乎一样,甚至是语法? 使用什么?或什么时候使用什么? 问题答案: 速度不再是真正活跃的开发。Freemarker是。 根据我的经验,Freemarker也更加灵活。