问题标签 [yourkit]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
21 回答
53768 浏览

java - 哪个 Java 分析器更好:JProfiler 还是 YourKit?

哪个分析器更适合通用分析和堆分析?我们 90% 的应用程序是具有大量数据库和数字处理的独立命令行程序。其他 10% 是 webapps/servlet 容器应用程序(只有很少的 JSP 并且没有 SCRIPLETS!)。目标用户是具有 5-10 年行业经验的高级软件工程师。我们只需要支持 Sun JDK 5 和。

在撰写此问题 (2008-10-02) 时,JProfiler 为 5.1.4,YourKit 为 7.5。看起来YourKit 8.0 即将发布。

0 投票
6 回答
873 浏览

java - 在 Java 中分析本机方法 - 奇怪的结果

我一直在使用 Yourkit 8.0 分析在 Mac OS X(10.5.7,Apple JDK 1.6.0_06-b06-57)下运行的数学密集型应用程序,并注意到 CPU 分析结果中有一些奇怪的行为。

例如 - 我使用采样进行了分析运行,它报告应用程序的 10 分钟运行时间中有 40% 用于 StrictMath.atan 方法。我发现这令人费解,但我相信了它的话,并花了一些时间用极其简单的多项式拟合替换 atan。

当我再次运行该应用程序时,它所用的时间几乎与以前完全相同(10 分钟) - 但我的 atan 替换在分析结果中没有出现。相反,其他主要热点的运行时间百分比只是增加了以弥补它。

总结一下:

StrictMath.atan 的结果(本机方法)
总运行时间:10 分钟
方法 1:20%
方法 2:20%
方法 3:20%
StrictMath.atan:40%

结果使用简化的纯 Java atan
总运行时间:10 分钟
方法 1:33%
方法 2:33%
方法 3:33%

(方法 1,2,3 不执行任何 atan 调用)

知道这种行为是怎么回事吗?我使用 EJ-Technologies 的 JProfiler 得到了相同的结果。似乎 JDK 分析 API 报告了本机方法的不准确结果,至少在 OS X 下是这样。

0 投票
1 回答
1461 浏览

memory - Tomcat ThreadWithAttributes 导致内存泄漏

我在以下环境中出现内存不足问题:

Tomcat 5.1.23 使用 XFire WebServices 框架 JDK 1.5

使用 YourKit 对其进行分析,发现类 org.apache.tomcat.util.threads.ThreadWithAttributes 的多个实例具有巨大的 ArrayList 对象(堆栈本地),其中 java.lang.Object 数组包含重复的字符串。

以下是一些截图。

知道为什么 ThreadWithAttributes 持有对此类 ArrayList 对象的引用,并且这些字符串似乎被输入到部署在 tomcat 中的软件吗?

它是否与tomcat的已知内存泄漏问题有关?

截图 1

截图 2

0 投票
5 回答
6497 浏览

java - 如何使用 YourKit Java Profiler 连接到 Java 命令行工具?

我已经用 Java 构建了一个命令行工具,现在我想用 YourKit 对其进行分析。我使用以下命令启动命令行工具:

它在不到 2 秒的时间内完成。

阅读http://www.yourkit.com/docs/80/help/agent.jsp后,我尝试了以下操作:

...我得到:

(然后该工具运行完成并退出。)

我猜(至少默认情况下)YourKit 旨在仅连接到正在运行的应用程序。

我应该如何修改我的命令行工具以允许来自 YourKit 的连接?

  1. 我可以添加一个命令行选项,让它暂停输入,在我从 YourKit 连接到它之前,我不会按回车键继续它。
  2. 是否有一个 YourKit API 可以添加到我的工具中,这会导致它在我与 YourKit 连接之前阻塞?
  3. 是否有 YourKit API 或 java 命令行选项可以创建一个我可以稍后(在命令行工具完成后)使用 YourKit 加载和分析的分析“快照”?
0 投票
2 回答
1813 浏览

java - 分析由 JNI 调用运行的 Java

我有一个 C++ 代码,在执行时:

加载 JVM(我可以完全控制如何加载 JVM),并使用 C JNI 代码调用 Java 方法(从加载的类)。Java 代码没有 Main(),它实际上不是标准的 Java 应用程序。主要是编译压缩成Jar文件的静态代码,代码被C++模块调用。

是否可以分析 YourKit 正在执行的这个 Java 代码(有它的许可证)?如果是这样,我会很高兴知道如何。

0 投票
2 回答
438 浏览

java - YourKit 是否报告 ReentrantLocks?

我正在尝试减少应用程序中特定代码路径上的锁争用。为了识别具有高锁争用的代码,我将 YourKit 连接到我的应用程序并使用“监视器”选项卡并查看获取哪些锁导致我关心的线程阻塞。我的最终目标是在 YK GUI 的“线程”选项卡中没有这个线程的红点。

通常争用是由使用内部锁的读/读锁定引起的,因此可以通过使用 aReentrantLock而不是内部锁来改进这些。事实上,当我尝试这样做时,YourKit 报告的争用较低。这些信息可靠吗?YourKit 是否正确报告了 ReentrantLock 的使用情况?

我在带有 Sun 1.6u18 32 位 JVM 的 Solaris 10 上使用 YourKit 8.0.24。

0 投票
3 回答
2184 浏览

java - 如何测量在 ubuntu 上运行的 java 应用程序的 I/O 时间?

我想收集我的应用程序等待 I/O 的时间。我在 ubuntu/linux 上运行这个 java 应用程序。我正在使用 yourkit 分析器。建议是否有其他用于测量 I/O 时间的分析工具。

0 投票
3 回答
1287 浏览

java - YourKit 在生产中

我最近下载了 YourKit 的试用版,玩了一段时间后它看起来很棒,但我担心在生产环境中运行它。我以前使用的分析器给服务器带来了不可接受的开销。

有谁知道 YourKit 软件的典型开销?或者有人在生产环境中运行 YourKit 有任何问题吗?

我正在为 Java 运行 YourKit。我正在分析的服务器是运行 JBoss 4 的 RedHat。

0 投票
2 回答
950 浏览

java - 用于 CPU 消耗的 Java 分析工具

我使用 JProfiler、JProbe、AppSight、YourKit 来找出哪些代码正在消耗 CPU。但是 YourKit 看起来比其他的要好。

有更好的吗 ?

0 投票
2 回答
174 浏览

java - 在 Java Profiler 中提到的应用程序中难以定位对象

我正在为托管在 Weblogic 上的 Web 应用程序使用 YourKit Java 分析器。我目前正在调查内存泄漏。分析器显示了大约 25 万个 char[] 对象,它们占用了 25% 的内存。

我尝试查看我的应用程序以了解这些 char[] 对象的创建位置。令人惊讶的是,我没有找到任何东西。我在这里做错了吗?Weblogic 是否在内部创建这些 Array 对象?

如何在我的应用程序中找到创建这些对象的确切代码?谢谢。

问候, 悉达多