问题标签 [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.
java - 使用 JConsole 等连接到冻结的 jvm
我们正在尝试分析在生产中运行的远程 tomcat 应用程序。问题是网络池中的所有线程都被阻塞了,这似乎阻止了我们与 jconsole、jmc 甚至 YourKit 的连接。当 jvm 运行良好时,所有这些工具都可以正常工作。
jconsole 的错误是超时:
这使得我们很难弄清楚我们的应用程序出了什么问题。服务器不使用太多 cpu 并且有空闲内存。所以没有明显的资源匮乏。jvm似乎已经死了
Java 版本:jdk1.7.0_75 Tomcat 版本:7.0.65
关于如何在这样的情况下连接到 jvm 的任何想法?
java - yourkit 可能出现频繁的 JVM 崩溃问题?
运行应用程序的tomcat 服务器经常崩溃。崩溃堆栈跟踪导致 yourkit agent 。有人可以帮忙找出这真的与 yourkit 相关吗?
java - 是否可以在外部分析器下运行 JMH 基准测试?
我目前正在寻找性能。为了测量吞吐量,并强制我们不回归,我使用了很棒的 JMH。
但是,当我遇到一些缓慢的事情时,我想开始分析以查看发生了什么,根据此链接,JMH 的作者写道:
虽然 JMH 分析器可以帮助进行分析,但我认为它们不能替代正确的分析。例如,“堆栈”分析器可以很好地浏览配置文件,但不适用于严肃的工作。
运行工作负载更长时间,并将您选择的分析器附加到正在运行的 VM。
我偷偷地希望我可以从命令行调整 JMH 测试,然后将类似 visualvm 的东西附加到它上面……但到目前为止,我已经能够让它工作。我想这是个坏主意?如果我可以共享我用来分析的代码以及我用来执行的代码,那将是理想的。
profiling - 使用 Yourkit 分析 Spray HTTP 应用程序
我有一个在远程机器上运行的基于 Spray 的 HTTP 应用程序,我想使用 Yourkit 对其进行分析。我按照Yourkit网站中提到的说明进行操作,最终遇到了这个错误:
java - 如何调试使用 JVMTI 代理设置断点的 Java 应用程序(无法获得必要的 JVMTI 功能)
我想调试使用我编写的 jvmti 代理的 java 应用程序。这似乎仅在 jvmti 代理未尝试启用“can_generate_breakpoint_events”功能时才有效。
尝试启用断点功能并在调试模式下启动应用程序会导致以下错误:
有什么方法可以调试使用设置断点的 jvmti 代理的应用程序?
我检查了Java JVMTI 不能与 -Xdebug -Xrunjdwp 一起工作,但接受的答案似乎并不正确,因为它似乎也确实取决于启用的功能。
我知道分析器(如 YourKit 等)也在使用 jvmti 代理,并且仍然允许您在调试模式下运行您的应用程序(好吧,也许他们只是没有使用导致这些冲突的功能)。
java - yourkit 在高分辨率屏幕上
我有一个 3200x1800 的笔记本电脑屏幕,要使大多数 X 应用程序可用,我需要有
在我的.Xresources
(我使用 ArchLinux)中。
但是yourkit(我猜一般是Java)并没有接受这些设置。有没有办法在高分辨率屏幕支持下运行 YourKit?
java - YourKit - 完成的线程是什么意思?
我正在使用 YourKit 来分析我的 Web 应用程序。如果在 Yourkit 的 Threads-view 中列出了一个 Java 线程并且该线程也被标记为已完成,这是否意味着该线程已完成但线程对象仍然存在(没有被垃圾收集删除)?或者 Yourkit 是否也显示没有现有线程对象的旧完成线程?我找不到有关此主题的任何文档。
谢谢你。
playframework - Play 2.5 and YourKit
I upgraded a Play serve from 2.4.2 to 2.5 and now whenever I enable YourKit profiler, YourKit and the Play server both slow to a crawl.
Anybody have experience profiling Play 2.5 servers?
I tried configuring both native and jdk sockets but neither helped.
neo4j - Neo4j-ogm:降低写入/映射性能
在我的项目中,我使用 spring-data-neo4j 4.2.0.M1 和 neo4j-ogm 2.0.4。最初这是使用嵌入式 neo4j 实例,但在调查此问题的过程中,我已使用 Bolt 协议迁移到专用的 neo4j 实例(尽管在同一台机器上运行)。
我不断地插入数据,基本上是因为它对我的应用程序可用(所以我不能使用批量插入)。启动后,这工作正常,保存我的 NodeEntity 的实例大约需要 60 毫秒,这对我的用例来说非常好。然而,随着时间的推移,这会慢慢退化。10-20 分钟后,每次保存会减慢到大约 2 秒,这不再那么好了。时间似乎在这里达到顶峰,并没有减少太多。
最初我认为这是由于嵌入式实例太小造成的,因为我看到 neo4j 报告了有关 GC 暂停的重复消息。然后我迁移到一个更大的专用实例,并且这些 GC 警告不再出现。尽管如此,退化仍然发生。
neo4j 报告的存储大小:
实例配置如下:
使用YourKit profiler(采样器模式!)我可以看到大部分时间似乎都花在neo4j-ogm的EntityGraphMapper上,特别是在
被保存的 NodeEntity 通常与其他节点有大约 40 个关系,其中大多数被建模为 RelationshipEntity。在较早的阶段,我已经注意到保存实体非常慢,因为也映射了太多相关(但未更改)的实体。从那时起,我在保存时使用深度 1。导致节点实体被保存的连续操作使用 200 个实体的事务大小。
我还不相信 neo4j-ogm 实际上是放缓的原因,因为与良好的初始结果相比,我看不出有什么变化。在这种情况下,我通常会怀疑内存泄漏/污染,但所有监控结果在我的应用程序中看起来都不错。对于 neo4j 服务器实例,除了 debug.log 之外,我真的不知道在哪里可以找到此类信息。
总而言之,我已经花了相当长的时间调查这个问题,不知道还有什么可以看的。有什么想法或建议吗?我很高兴提供更多信息。
编辑:在@vince 的输入之后,我再次查看了内存分布,发现实际上 Neo4jSession 在让应用程序运行约 3 小时后增长了很多:
当时堆有 1.7 GB 大,其中 70% 引用了实时数据。其中,Neo4jSession 当前引用了大约 300mb(并保持活动状态)。这可能表明它已经变得太大了。我怎样才能在这里手动干预?
scala - mutable.array.drop 出奇的慢
我是. Scala
_ _Scala
YourKit
array.drop
这是我写的:
在我的代码运行 1 分钟后,YourKit 告诉我函数调用items.drop(2)
大约占总执行时间的 11%。
这真的让我感到惊讶,是否有任何内部存储器副本会减慢处理速度?如果是这样,优化我的简单代码片段的最佳做法是什么?谢谢你。