问题标签 [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 投票
1 回答
266 浏览

java - 除了使用像 Eclipse 插件这样的分析器之外,由一个类创建的对象的 java 数量

我想知道是否有一个好的 eclipse 插件来查看创建了多少对象或每个类。Yourkit 探查器在这方面做得很好,但在 eclipse 中有一些正确的东西很方便。

0 投票
3 回答
382 浏览

java - 剖析 Java EE 应用程序 - 寻找什么以及进行哪些更改?

我对分析应用程序以提高性能有点陌生。我已选择 YourKit 作为我的分析器。毫无疑问,YourKit 提供了非常有趣的统计数据。我遇到困难的地方是如何处理这些统计数据。

例如,考虑一个对 JAXB POJO 进行操作的方法。该方法遍历 POJO 以访问深深嵌套在 XML 中的标记/元素。这需要 4 层 for 循环才能到达元素/标签,如下所示:

YourKit 告诉我,上面的代码是一个“热点”,每次调用包含此代码的方法都会收集 80 个对象的垃圾。上面的代码只是一个例子,并不是我卡住的唯一部分。大多数时候,我不知道如何处理分析器提供的信息。我可以做些什么来减少上述代码中临时对象的数量?是否有任何明确的原则可以提高应用程序的性能?分析应用程序时要查找哪些统计信息以及每种统计信息有什么含义?

编辑:分析应用程序的主要目标是增加吞吐量和响应时间。当前吞吐量仅为所需吞吐量的 10%!

0 投票
3 回答
841 浏览

java - 数组构造断点

无论如何要在 Eclipse 或其他调试器中设置断点,以便在构建数组时停止执行?我对原始数组 (int[]) 的构造特别感兴趣,但这个问题应该同样适用于任何数组。

我需要找到造成大量垃圾的罪魁祸首,其中包括 int[]、char[] 和 byte[] 等,所以如果我可以在某些条件下设置断点,我将能够缩小代码范围.

我尝试使用 yourkit 内存分析,但它只显示这些对象中一小部分的分配,其余显示为<objects without allocation information>,我不知道为什么。当我进入Objects unreachable from GC roots视图时,我只能看到大约 7% 的垃圾的分配信息。由于分配了这么少比例的对象,我什至不确定我是否遗漏了一些位置。有没有办法让 YK 保留所有分配?

0 投票
3 回答
6387 浏览

java - 为什么 park/unpark 有 60% 的 CPU 使用率?

最近我们开始使用 YJP 11.0.9 对我们的应用程序(基于 XMPP 的聊天服务器)进行压力测试。在我们的测试中,我们注意到以下奇怪的行为。

  1. 采样显示 sun.misc.Unsafe.unpark(Object) 占用了 60% 的 CPU。
  2. 对于同一个应用程序跟踪显示 LockSupport.park(Object) 占用了 52% 的 CPU。

我做了多次测试来确认结果,每次我得到类似的结果。

我无法理解为什么 unpark 应该花费 60% 的时间以及为什么跟踪显示完全相反的结果。

有人可以帮我理解这些结果。我在这里错过了什么吗?

环境:

0 投票
3 回答
2735 浏览

java - 我可以从实时 JVM 中转储当前线程堆栈变量吗?

我需要查看 2 个死锁线程的堆栈来分析情况。它现在JVM是实时的并且数据在那里,但我需要某种工具来从流程中提取它。我只关心类型堆栈中的 6 个变量String。任何想法都非常感谢。JVM版本6_35,它是一个linuxJMX已启用,但我没有profiler/debugger配置连接。很难复制。

0 投票
1 回答
1799 浏览

eclipse - Yourkit profiler eclipse 调试模式启动

我知道 yourkit 可以很容易地集成到 Eclipse 中,您可以启动程序“Profile As”,它会自动连接到 Yourkit API 和统计分析。这总是运行程序并对其进行配置文件。

现在,如果我必须在调试模式下进行。有没有办法做到这一点?

0 投票
0 回答
1131 浏览

java - 使用 YourKit 打开 Hadoop HPROF .profile 文件

YourKit 声称能够打开二进制 HPROF 转储,但它坚持认为从 Hadoop 作业生成的二进制转储不是有效的快照。

转储是通过将mapred.task.profile.params选项指定为-agentlib:hprof=cpu=samples,heap=sites,depth=6,force=n,thread=y,verbose=n,file=%s,format=b(如 Hadoop:The Definitive Guide 中所指定)来进行的。

有什么方法可以用 YourKit 打开这个文件吗?是否有其他图形分析工具可以打开创建的文件?

0 投票
2 回答
3126 浏览

intellij-idea - 使用 IDEA Intellij 在 Ubuntu 12.04 上设置 YourKit Java 分析器时缺少什么?

设置 YourKit Java Profiler 时出现此错误

我的 JVM 是 64 位的。我在这里缺少东西吗?

我有一些 E2E 测试涉及线程、套接字和 SiteBricks Http webclients。现在我的测试运行非常慢,每次测试大约 6 秒,这非常慢。我想使用分析器来观察测试在哪里变慢了。我的测试框架是TestNG。当我按右键单击并按“配置文件”时,我收到上述消息。

感谢帮助。

0 投票
1 回答
824 浏览

java - Java 分析 - Tomcat 服务器终止

我正在尝试使用 yourkit jprofiler 分析我的基于 spring/hibernate 的应用程序。每当我运行分析应用程序(与 yourkit 一起)时,tomcat 服务器在我提交表单后终止。数据正在成功插入。我得到以下错误。

0 投票
0 回答
273 浏览

java - 尽管进行了广泛的分析,但找不到导致 API 响应时间逐渐减慢的原因,有什么想法吗?

我们的应用程序公开了一个 JSON-RPC API,使用 Jetty 和 Google Gson 来解析/生成 JSON 代码。

远程系统打开数千个与我们的应用程序的持久 HTTP 连接,并开始以每秒约 50 个的速率发送 API 请求。我们的应用程序仅使用 CPU 生成响应(即没有磁盘或数据库访问)。我们的应用程序在 EC2 虚拟机上运行。

当我们的应用程序第一次启动时,它的典型响应时间是 1-2 毫秒,但是在几个小时的过程中,它会稳步增加,直到最终达到 80 毫秒,这对于我们的应用程序来说太慢了。这是一个以纳秒为单位显示响应时间的图表,请注意稳步增加。

API 响应时间图表(以纳秒为单位)

我使用 YourKit 分析器在启动后不久捕获 CPU 快照,然后在它明显变慢时再次捕获。问题是似乎没有一种方法可以解释减速,一切都会随着时间的推移而变慢。

线程数和内存使用量似乎也没有增加,所以我现在对减速的可能原因感到茫然。

有没有人对可能的原因有任何想法,或者关于更有效的方法来隔离问题的建议?