码迷,mamicode.com
首页 > 其他好文 > 详细

记一次优化的的意外收获

时间:2019-09-18 11:23:46      阅读:127      评论:0      收藏:0      [点我收藏+]

标签:nec   查找   没有   内存   时间   错误   服务器   测试的   说明   

一.在获取MySQL连接的时候发现如下问题

第一次访问

技术图片

第二次访问

技术图片

下面是我做测试的代码

技术图片

二.原因

  1.第一次访问慢,第二次快,很容易想到缓存,这里我们是对获取连接的代码进行测试,所以应该是连接缓存,我们使用navicat的服务器监视功能监视MySQL的连接情况,但连接数一直稳定在四个,没有增加,也就没有缓存。

  2.不是连接缓存那就有可能是在第一次查询会做一些解析工作,后面了解到,mysql会有一个叫做反向解析的过程,也就是通过IP查找域名,这个过程会很耗时,但与这个关联的是一个叫Host Cache的东西,在反向解析查找到后,会把这个主机的IP与域名以及错误信息暂时缓存起来,如果第二次访问有这个缓存说明进行了反向解析,但很遗憾并没有,说明并不是这个影响的。

  3.在后来询问老师,在一番检查后认为是因为第一次会把许多类加载进内存,而第二次不用加载,就是这个过程耗费了几百毫秒的时间,因为Connect方法的调用会涉及许多底层类的加载与各种初始化,所以很有可能,最后在主方法调用此方法,每次耗费时间相同,因为主方法每次都会重新加载类,至此原因水落石出,完美。

记一次优化的的意外收获

标签:nec   查找   没有   内存   时间   错误   服务器   测试的   说明   

原文地址:https://www.cnblogs.com/lollong/p/11539954.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!