发布于2022-12-05 23:34 阅读(737) 评论(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黑洞网
任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任
昵称:
评论内容:(最多支持255个字符)
---无人问津也好,技不如人也罢,你都要试着安静下来,去做自己该做的事,而不是让内心的烦躁、焦虑,坏掉你本来就不多的热情和定力
Copyright © 2018-2021 java黑洞网 All Rights Reserved 版权所有,并保留所有权利。京ICP备18063182号-2
投诉与举报,广告合作请联系vgs_info@163.com或QQ3083709327
免责声明:网站文章均由用户上传,仅供读者学习交流使用,禁止用做商业用途。若文章涉及色情,反动,侵权等违法信息,请向我们举报,一经核实我们会立即删除!