微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

java – Mysql jconnector在com.myql.jdbc.utils.ReadAheadInputStream.fill()中花费50%的时间

我在剖析我的应用程序,它使用 Spring Hibernate MysqL-java-connector. visualvm显示,当有1000个并行连接读取时,超过50%的cpu时间是com.myql.jdbc.utils.ReadAheadInputStream.fill()中的成本.

是否有任何优化使其更快?

解决方法

没有其他信息,很难回答您的问题.这里有一些应该满足的信息需求.

>是您估计的cpu时间绝对还是相对的?如果fill()方法使用一半的cpu时间可用于系统似乎很奇怪.但是如果这个数字是使用VisualVM来报告使用时间相对于应用程序花费的时间,那么您的应用程序的其余部分可能没有做重大的工作呢?
>使用系统级工具确定这些分析测量?你可以使用pidstat,mpstat和sar来交叉检查你是否在Linux上.我已经看到VisualVM标记的时间花在SocketInputStream.socketRead0()方法作为cpu时间,这没有被pidstat确认.我想这是VisualVM本身或JVM行为中的一些测量近似的后果.所以通过使用操作系统工具进行交叉检查始终是个好主意.

原文地址:https://www.jb51.cc/java/125012.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐