gpt4 book ai didi

java - 逐行分析 Java

转载 作者:行者123 更新时间:2023-12-04 20:05:19 25 4
gpt4 key购买 nike

我正在尝试分析我的代码以检测瓶颈。我搜索了一些分析器,但我从来没有找到我要找的东西。
以前用了很多python,有这个软件:
line_profiler谁给了这种返回:

0         Line     Hits  Time  Per Hit   % Time  Line Contents

11 @profile
12 def compute_prior(folder):
13 """
14 Given a folder, we compute the prior of neg and pos
15 folder = "./movie-reviews-en/train/"
16 """
17 # we compute the number of positive reviews
18 3 1719 573.0 52.9 number_positive = len([f for f in listdir(folder + "pos/")])
19 # then the negative
20 3 1512 504.0 46.6 number_negative = len([f for f in listdir(folder + "neg/")])
21 # we add it and we have the total
22 3 6 2.0 0.2 total = number_positive + number_negative
23 # we devide to have the probabilites
24 3 6 2.0 0.2 number_positive /= total
25 3 1 0.3 0.0 number_negative /= total
26 # we return this three numbers
27 3 3 1.0 0.1 return [number_positive, number_negative, total]
Java 世界中有类似的东西吗?
谢谢回复。
ps:我已经知道 yourkit、jprofiler、visualwm,但我想要代码中的一些东西。

最佳答案

我从事性能分析已经有一段时间了,我很确定,您不会找到这样的工具。我不认为,首先构建这样一个工具是可行的。

这涉及到很多不可估量的问题,例如,热点虚拟机将在学习可能的执行路径或执行频率后反编译和重新编译代码。因此,一行代码的执行时间可能会随时间显着变化。

此外,您的监控解决方案会减慢您的应用程序的速度,甚至更糟:它会改变您的代码的相对执行时间。这基本上意味着您可能会在没有监控的情况下不存在此类热点的地方发现热点。

您可以自己构建这样的工具,即通过 System.nanoTime() 测量执行时间。 ,但你肯定会发现这不是一条可走的路。

我的建议是坚持使用您已经命名的默认分析器,直到您查明悲伤的根源,然后切换到一些手动技术或使用重构来提取包含热点的部分方法以获得更清晰的理解,这部分代码负责不受欢迎的行为。

如果您想构建微基准测试:只需忘记它。微基准测试几乎从不显示任何可靠或可传输的数据,即使您做对了并且机会非常高,但您根本没有做对。

关于java - 逐行分析 Java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46487995/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com