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

optimization - Profiled Java App - 为什么地图查找速度很慢?

在使用 JProfiler 和 YourKit 分析 Java 应用程序后,我看到了访问 Long to Object Map 的多种方法,我们使用 fast util 的 map 来实现高吞吐量,而数组很慢。应用程序在一个滴答声环境中运行,如果你愿意,一个游戏循环会在线程上的每个滴答声之间暂停 50 毫秒。每次滴答,实体的位置都会从带有它们的块位置的地图中抓取,但是抓取这些数据会以某种方式产生 200 毫秒以上的延迟峰值。有什么方法可以优化地图查找/实时实体位置抓取?我尝试在实体对象中本地存储一个块以避免访问地图,但这会创建更多内存(我们有 8k+ 个实体被勾选)并且可能会泄漏。

我们目前有一个带有多人客户端的服务器游戏循环的实现。数据包与游戏机制(碰撞、实体滴答)一起在单个线程上进行处理。我们尝试接近多线程环境,但这会产生大量需要锁定和同步技术的竞争条件,这总体上会减慢滴答循环并使用内核中的大量 CPU。单线程运行良好;但是,大部分延迟来自地图查找、数组查找、碰撞对象创建和实体移动等。您知道优化这些循环的任何好主意吗?

0 投票
0 回答
26 浏览

yourkit - Yourkit cpu 采样

抱歉,我无法在此处粘贴代码,但我正在使用 yourkit 为我的应用程序进行 CPU 采样,我看到以下内容:

11.0.10 - 120.347:警告:NULL 类名

11.0.10 - 120.348:java.lang.invoke.LambdaForm$MH

11.0.10 - 153.824:快照捕获:RealtimeApp-2017-12-22-1.snapshot

11.0.10 - 1728.006:java.util.ArrayList$1 相同

我怎样才能找出这个 ArrayList 是关于什么的?

另外,当我在 yourkit 中加载快照时,我看到了这个

Yourkit CPU 这个灰色区域没有任何信息。我怎样才能知道它在做什么。

特别是,在我的日志中,我可以看到有一个 10 秒的窗口,根本没有日志记录......(我使用 log4j2 和 Discard 策略..所以我怀疑我的 log4j2 溢出但我还没有找到方法来证明)

谢谢!!

0 投票
1 回答
594 浏览

java - 内部类反向引用保留的对象是什么意思

newbi 使用分析器,我正在使用 yourkit。我在检查中看到可能的内存泄漏

这是什么意思 ?有人可以举一个这样的对象的好例子吗?为什么这可能被认为是泄漏?谢谢

0 投票
1 回答
51 浏览

sql - 如何在 yourkit 中启用 j2ee 统计信息

我正在尝试使用 yourkit 来分析部署在 JBoss 上的应用程序。使用本教程 https://www.yourkit.com/docs/demo/JavaEE/JavaEE.htm 我创建了一个 .bat 文件来使用 Yourkit 代理启动 JBoss。不幸的是,我在 Yourkit 站点中找不到我应该使用什么属性才能看到在 J2EE 统计部分执行了哪些 SQL 查询。有什么帮助吗?

0 投票
0 回答
502 浏览

yourkit - Yourkit vs Java Mission Control

我有一个关于 Yourkit 和 Java Mission Control 的问题......

7 年前我使用 Yourkit 来分析 J2EE 应用程序,现在我正在为另一个项目工作,我必须分析一个应用程序,这个项目没有 Yourkit 的许可证。

在搜索互联网的过程中,我发现了 Java Mission Control,在我看来,它几乎与 7 年前的 Yourkit 具有相同的功能。

所以我的问题是,最新版本的 Yourkit 是否比 JMC 做得更多,所以我可以论证我的项目以论证支付许可证......

谢谢回答....

0 投票
2 回答
1471 浏览

java - Yourkit UI 抛出“没有在 localhost 上运行的应用程序配置为侦听端口的分析器代理”异常

我正在尝试分析部署在 Jboss 中的远程应用程序。到目前为止,我可以连接到远程服务器并查看我的应用程序,我也能够连接到应用程序。但是当我单击“开始 CPU 分析”时,它需要很长时间,并且大多数时候会导致以下异常:

尽管有时(很少)它确实会启动分析并给我想要的结果。但是我无法理解这种不一致的行为,我也不明白为什么它会给我一个错误,说“没有应用程序在 localhost 上运行......”考虑到我正在尝试分析远程应用程序。

安装 UI 的机器上的片段:

如果有人能解释和指导这件事,那就太好了。

提前致谢!

0 投票
0 回答
78 浏览

java - 在热点 hprof 上,我在哪里可以找到捕获的 lambda 值?

我正在调查 Hotspot-1.8 JVM 进行的堆转储。转储采用 hprof 格式并包含数千个 lambda 实例。

它们都是由这样的函数创建的:

有效并且 lambda 显示在singletonMgr管理列表中。但除了<class>每个对象获得的引用之外,它是空的。我会期待value在那里的参考?

我缺少什么以及如何评估每个 Lambda 的value

0 投票
1 回答
303 浏览

intellij-idea - 使用节点驱动程序时,流程中的公证会因握手失败而挂起

每当我尝试使用节点驱动程序进行测试时,我发现在公证时,我的流程会挂起。

检查节点日志后,显示公证人的消息代理无法访问:

[信息] 09:33:26,653 [nioEventLoopGroup-3-3] (AMQPClient.kt:91) netty.AMQPClient.run - 重试连接 {}

[INFO] 09:33:26,657 [nioEventLoopGroup-3-4] (AMQPClient.kt:76) netty.AMQPClient.operationComplete - 连接到 localhost:10001 {}

[INFO] 09:33:26,658 [nioEventLoopGroup-3-4] (AMQPChannelHandler.kt:49) O=Notary Service, L=Zurich, C=CH.channelActive - 新客户端连接 db926eb8 从 localhost/127.0.0.1:10001 到/127.0.0.1:63781 {}

[INFO] 09:33:26,658 [nioEventLoopGroup-3-4] (AMQPClient.kt:86) netty.AMQPClient.operationComplete - 与 localhost:10001 {} 断开连接

[错误] 09:33:26,658 [nioEventLoopGroup-3-4] (AMQPChannelHandler.kt:98) O=Notary Service, L=Zurich, C=CH.userEventTriggered - 握手失败 SslHandshakeCompletionEvent(java.nio.channels.ClosedChannelException) { }

[INFO] 09:33:26,659 [nioEventLoopGroup-3-4] (AMQPChannelHandler.kt:74) O=Notary Service, L=Zurich, C=CH.channelInactive - 从 localhost/127.0.0.1:10001 关闭客户端连接 db926eb8 到/127.0.0.1:63781 {}

[INFO] 09:33:26,659 [nioEventLoopGroup-3-4] (AMQPBridgeManager.kt:115) peers.DLF1ZmHt1DXc9HbxzDNm6VHduUABBbNsp7Mh4DhoBs6ifd -> localhost:10001:O=Notary Service, L=Zurich, C=CH.onSocketConnected - Bridge Disconnected {}

而公证日志显示以下内容:

[INFO] 13:24:21,735 [main] (ActiveMQServerImpl.java:540) core.server.internalStart - AMQ221001:Apache ActiveMQ Artemis 消息代理版本 2.2.0 [localhost,nodeID=7b3df3b8-98aa-11e8-83bd-ead493c8221e] {}

[DEBUG] 13:24:21,735 [main] (ArtemisRpcBroker.kt:51) rpc.ArtemisRpcBroker.start - Artemis RPC 代理已启动。{}

[INFO] 13:24:21,737 [main] (ArtemisMessagingClient.kt:28) internal.ArtemisMessagingClient.start - 连接到消息代理:localhost:10001 {}

[错误] 13:24:22,298 [main] (NettyConnector.java:713) core.client.createConnection - AMQ214016: 无法创建 netty 连接 {} java.nio.channels.ClosedChannelException: null at io.netty.handler.ssl .SslHandler.channelInactive(...)(未知来源) ~[netty-all-4.1.9.Final.jar:4.1.9.Final]

[DEBUG] 13:24:22,362 [main] (PersistentIdentityService.kt:137) identity.PersistentIdentityService.verifyAndRegisterIdentity - 注册身份 O=Notary Service, L=Zurich, C=CH {}

[警告] 13:24:22,363 [main] (AppendOnlyPersistentMap.kt:79) utility.AppendOnlyPersistentMapBase.set - 在 net.corda.node.utilities.AppendOnlyPersistentMap 中双重插入实体类 net.corda.node.services.identity。 PersistentIdentityService$PersistentIdentity key 69ACAA32A0C7934D9454CB53EEA6CA6CCD8E4090B30C560A5A36EA10F3DC13E8,第二次不插入{}

[错误] 13:24:22,368 [main] (NodeStartup.kt:125) internal.Node.run - 节点启动期间出现异常{} org.apache.activemq.artemis.api.core.ActiveMQNotConnectedException:AMQ119007:无法连接到服务器(s)。尝试了所有可用的服务器。在 org.apache.activemq.artemis.core.client.impl.ServerLocatorImpl.createSessionFactory(ServerLocatorImpl.java:787) ~[artemis-core-client-2.2.0.jar:2.2.0] 在 net.corda.nodeapi。 internal.ArtemisMessagingClient.start(ArtemisMessagingClient.kt:39) ~[corda-node-api-3.2-corda.jar:?] at net.corda.nodeapi.internal.bridging.AMQPBridgeManager.start(AMQPBridgeManager.kt:195) ~ [corda-node-api-3.2-corda.jar:?] 在 net.corda.nodeapi.internal.bridging.BridgeControlListener.start(BridgeControlListener.kt:35) ~[corda-node-api-3.2-corda.jar: ?] 在 net.corda.node.internal.Node。

我该如何解决?

0 投票
1 回答
373 浏览

java - 使用 Yourkit 探查器代理如何导致程序在查找资源包时失败

启动我在 linux 机器上运行的 web 应用程序,然后转到网页工作正常,

但在命令行上使用 ypagent 运行它,这样我就可以从我的 PC 上对其进行分析

我得到

那怎么可能(顺便说一句,资源文件中确实存在资源包值)

0 投票
1 回答
158 浏览

java - 从 YourKit 调用 System.gc() 会导致分配的内存增加

我即将开始使用第 3 方闭源库来加载一堆数据,并想检查它的速度以及加载一个“集”数据需要多少内存。我编写了这个简单的工具来调用数据加载来计时,并使用 YourKit 快速查看内存使用情况并深入研究 CPU 时间。

我在 Windows 7 上运行它,在没有 VM 参数的 JDK8 上使用 Eclipse。

这是加载完成后 YourKit 的内存快照:

在此处输入图像描述

然后我使用 YourKit 来“强制”垃圾收集,这发生了:

在此处输入图像描述

显然这不是现实生活中的场景,因为我被困在 main 方法中,在主线程上,所以我的一些引用不会被清理,但我不知道为什么内存分配会不断增加。

每次我单击“强制系统 GC”时,分配都会增加。在它停止增加之前,我达到了 11.9GB。

在此处输入图像描述

为什么会这样?