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

前端之家收集整理的这篇文章主要介绍了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()中的成本. @H_403_2@是否有任何优化使其更快?

解决方法

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

猜你在找的Java相关文章