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行为中的一些测量近似的后果.所以通过使用操作系统工具进行交叉检查始终是个好主意.

相关文章

最近看了一下学习资料,感觉进制转换其实还是挺有意思的,尤...
/*HashSet 基本操作 * --set:元素是无序的,存入和取出顺序不...
/*list 基本操作 * * List a=new List(); * 增 * a.add(inde...
/* * 内部类 * */ 1 class OutClass{ 2 //定义外部类的成员变...
集合的操作Iterator、Collection、Set和HashSet关系Iterator...
接口中常量的修饰关键字:public,static,final(常量)函数...