当前位置: 首页 > news >正文

嘉兴市建设街道网站洛阳做网站找哪家好

嘉兴市建设街道网站,洛阳做网站找哪家好,给别人做网站的公司,如何设置自己网站的关键词问题背景最近在负责一个订单系统的业务研发#xff0c;本来不是件困难的事。但是服务的启动时间很慢#xff0c;慢的令人发指。单次启动的时间约在10多分钟左右#xff0c;基本一次迭代、开发#xff0c;大部分的时间都花在了启动项目上。忍无可忍的我#xff0c;终于决定…问题背景最近在负责一个订单系统的业务研发本来不是件困难的事。但是服务的启动时间很慢慢的令人发指。单次启动的时间约在10多分钟左右基本一次迭代、开发大部分的时间都花在了启动项目上。忍无可忍的我终于决定找到启动慢的原因。方案探索起初对于优化项目启动速度是毫无头绪。也是傻傻的从百度上去搜解决的方案。一下子就搜到了Jprofiler这个软件据说是能快速找到错误栈的位置。但是不得不说这软件真的很坑不仅收费MAC破解巨难找找到了还打不开而且实际因为很多Spring类都是采用动态代理加载的Jprofiler根本判断不出来错误位置在哪。尝试Jprofiler无果后从网上还看到了一个另外的方法可以通过对运行中的线程作快照来定位是否存在有死循环的线程。进而优化启动速度。采用Thread dump的方式比较适合你清楚大致原因的时候使用否则你盲目的去截取到的线程实际上也很难定位是不是当前线程的问题。尽管错误栈很全但意味着你需要了解的源码更深。对我这种小白依旧很难get到具体的原因。深入钻研采用网上的解决方案都无疾而终后决定还是采用最笨的方法解决就一点点的debug吧于是在SpringBoot的启动类org.springframework.boot.SpringApplication#run上打满了debug点逐个关键的debug点去调试。尽管方案很笨也很耗时启动一次基本10分钟左右。但是很快定位到了启动缓慢的原因。在Springboot的BEAN后处理器的加载方法中有一个关键的Bean容器DSLContext启动及其的慢大概需要6、7分钟左右。org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory#applyBeanPostProcessorsAfterInitialization然而dslContext是个啥玩意他为啥又让我的系统启动慢了呢带着疑惑又搜了一遍百度直到看到了这篇文章。https://www.jianshu.com/p/f65653a0f11c 。文章里写到dslContext启动慢的原因主要是有个AnnotationAwareAspectJAutoProxyCreator的处理器该处理器会扫描dslContext中的方法并逐一判断当前的方式是否需要动态代理。dslContext中包含约800的方法启动自然会很慢。最终解决知道了原因那么自然也就知道了解决方案。只要让Springboot不扫描到这个dslContext组件了那么就可以加快启动速度了不是那么自然就可以从两个角度出发 1、修改Springboot的扫描范围不扫描即可 2、不导入dslContext的依赖包让Springboot扫描不到我首先尝试了第一种方法修改了启动类上ComponentScan和EnableFeignClients的两个注解的扫描范围然而无论我怎么修改实际上都没有生效。大概率猜测是因为dslContext并不是采用Componet注解的方式而是采用Configuration注入的方式导致。无奈之下只能按照第二种思路去考虑解决方案。然而作为一个饱经风霜的项目maven依赖多到数不清根本不知道该从何下手。 尝试通过Maven Helper插件去搜索dslContext的maven依赖却也是毫无作用。 PS这里不得不提一下Maven Helper这个插件这个插件可以很快找到我们所依赖的maven是我平日用来排除相关依赖的利器。也就是抱着尝试的心态在百度下搜索了一下“使用dslContext”的关键字很幸运的是在第二个搜索位置跳出了jooq这个名词。于是怀疑是不是这个jooq依赖把dslContext导入进来了呢尝试着一搜果然毫不犹豫点击了exclude再启动一次。问题解决经验总结解决项目启动慢的原因其实是个很依靠个人经验和运气、玄学的过程但是还是有一些方法有迹可循。 1、可以考虑Jprofiler去记录线程的启动时间。但本次效果不佳可能需要更正常的打开方式 2、可以考虑采用截取线程快照的方式定位。 3、最最笨的方法就是采用Debug的方式定位。 在定位到具体的启动缓慢的原因后如果是因为注入的问题有下面两条解决思路 1、不扫描对应的Component组件可以通过修改Component、EnableFeignClients的basePackge参数来控制。 2、如果上述的参数没有生效可以考虑尝试百度定位引入这个组件的maven依赖是什么并借助Maven Helper插件将该依赖排除。
http://www.dnsts.com.cn/news/95214.html

相关文章:

  • 深圳网站定制公司北京企业模板建站
  • 网站建设psd精品一卡2卡三卡4卡分类
  • 网站建设与服务考试网站要钱怎么
  • 建设网站外国人可搜到中国建设银行网站设计评价
  • 网站设计 价格国外美容网站
  • 学习软件的网站网站商城
  • 向客户介绍网站建设如何设置网站icon
  • 好的俄文网站设计如何在wordpress中加备案编号
  • 如何在网站做旅游产品建德市住房和城乡建设局网站
  • 做鞋子出口需要作网站吗免费在线网站建设
  • 凡科做 淘宝客网站wordpress安装在本地安装
  • 动态字设计网站湖北app定制开发
  • asp网站开发 pdf做外贸的社交网站有哪些
  • 北京鑫创网站建设网站左侧导航栏设计
  • 毕业设计代写网站网站建设答案
  • 汉中市住建局建设厅网站官网做网站头片的高清图
  • 全屏网站模板制作教程做直播网站需要学什么软件有哪些
  • 外贸网站用wordpress阿里云网站备案网站建设方案书
  • 公司网站开发款记什么科目wordpress sae 安装主题
  • 天津网站建设兼职自己动手做导航网站
  • 有哪些可以做头像的网站学生自做网站优秀作品
  • 手机网站 文件上传兰溪好品质高端网站设计
  • 有关大学生做兼职的网站有哪些网站服务器分流怎么做
  • 傻瓜式网站界面哪里有广告设计制作的培训
  • 网站建设的目的及意义深圳网站制作公司招聘
  • 天津企业免费建站建网站主要工具
  • 网站建设的目的及定位功能wordpress4.9中文
  • 修改网站j广州网络公司江苏宿迁房产网
  • 厦门市建设局网站重庆网站设计方案
  • 网站备案找回密码wordpress+app+打包