程序员最近都爱上了这个网站  程序员们快来瞅瞅吧!  it98k网:it98k.com

本站消息

站长简介/公众号

  出租广告位,需要合作请联系站长


+关注
已关注

分类  

暂无分类

标签  

暂无标签

日期归档  

暂无数据

Java 中的概要分析是否会带来其自身的性能问题?

发布于2022-12-05 23:34     阅读(662)     评论(0)     点赞(12)     收藏(1)


我经常分析我团队的高性能 Java 程序,因为低效的函数会导致严重的速度下降。为此,我使用以下 Java 机器参数打开一个端口以附加 Java VisualVM:

-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=9011 -Dcom.sun.management.jmxremote.local.only=false -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Djava.rmi.server.hostname=localhost

今天让我印象深刻:对 Java 程序进行概要分析——或者只是为了概要分析而保持端口打开——会进一步降低速度吗?如果是这样,某些分析方法是否比其他方法成本更高?什么样的速度降低或开销——例如,1% 的运行时间,10% 的运行时间——是正常预期的?

虽然我的问题是针对更广泛的 Java 受众的,但我会注意到我们的程序 a 是内存轻型但 CPU 密集型模拟:具体来说,有大量的小但计算量大的函数调用一直在进行。考虑到函数调用的绝对数量,也许在我们的例子中优化是昂贵的,但对其他人来说不是那么多?


解决方案


分析 Java 程序

大约 10% - 30% 取决于你在做什么。

或者只是为了分析而保持端口打开

可能几乎没有开销。

是内存轻型但 CPU 密集型模拟:具体来说,有大量的小但计算量大的函数调用不断进行。

我会认真考虑 FlightRecorder(来自 Java 7,在 Java 8 中更好)。这具有更低的开销,并且有更多的 CPU 记录细节。在 Java 8 中,您可以在不添加任何命令行参数的情况下运行它。



所属网站分类: 技术文章 > 问答

作者:黑洞官方问答小能手

链接:http://www.javaheidong.com/blog/article/583879/cb1962a320b5025b8744/

来源:java黑洞网

任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任

12 0
收藏该文
已收藏

评论内容:(最多支持255个字符)