保健励志美文体育育儿作文
投稿投诉
作文动态
热点娱乐
育儿情感
教程科技
体育养生
教案探索
美文旅游
财经日志
励志范文
论文时尚
保健游戏
护肤业界

加快SpringBoot启动的几种方法

  在本教程中,我们将介绍有助于减少SpringBoot启动时间的不同配置和设置:首先,我们将讨论Spring特定的配置。其次,我们将介绍Java虚拟机选项。最后,我们将介绍如何利用GraalVM和本机镜像编译来进一步缩短启动时间。
  延迟初始化
  SpringFramework支持延迟初始化。延迟初始化意味着Spring不会在启动时创建所有bean。此外,在需要该bean之前,Spring不会注入任何依赖项。从SpringBoot2。2版开始。可以使用application。properties启用延迟初始化:
  spring。main。lazyinitializationtrue
  根据我们代码库的大小情况,延迟初始化甚至会导致很大的启动时间减少。这种减少取决于我们应用程序的依赖关系图。
  此外,延迟初始化在使用DevTools热重启功能的开发过程中也有好处。使用延迟初始化增加重启次数将使JVM能够更好地优化代码。
  但是,延迟初始化有一些缺点。最显着的缺点是应用程序会较慢地处理第一个请求。因为Spring需要时间来初始化所需的bean,另一个缺点是我们可能会在启动时遗漏一些错误。这可能会在运行时导致ClassNotFoundException。
  排除不必要的自动配置
  SpringBoot总是喜欢约定而不是配置。Spring可能会初始化我们的应用程序不需要的bean。我们可以使用启动日志检查所有自动配置的bean。在application。properties中的org。springframework。boot。autoconfigure上将日志记录级别设置为DEBUG:
  logging。level。org。springframework。boot。autoconfigureDEBUG
  在日志中,我们将看到专用于自动配置的新行,然后根据这些输出,我们可以排除这些应用程序配置。
  为了排除部分配置,我们使用EnableAutoConfiguration注解:EnableAutoConfiguration(exclude{JacksonAutoConfiguration。bclassb,JvmMetricsAutoConfiguration。bclassb,LogbackMetricsAutoConfiguration。bclassb,MetricsAutoConfiguration。bclassb})
  如果我们排除JacksonJSON库和一些我们不使用的指标配置,我们可以在启动时节省一些时间。
  切换到Undertow
  SpringBoot带有一个嵌入式servlet容器。默认情况下,我们得到Tomcat。虽然Tomcat在大多数情况下已经足够好,但其他servlet容器的性能可能更高。在测试中,来自JBoss的Undertow的性能优于Tomcat或Jetty。它需要更少的内存并具有更好的平均响应时间。要切换到Undertow,我们需要更改pom。xml:dependencygroupIdorg。springframework。bootgroupIdspringbootstarterwebartifactIdexclusionsexclusiongroupIdorg。springframework。bootgroupIdspringbootstartertomcatartifactIdexclusionexclusionsdependencydependencygroupIdorg。springframework。bootgroupIdspringbootstarterundertowartifactIddependency
  生成索引
  Spring类路径扫描是快速操作。当我们拥有大型代码库时,我们可以通过创建静态索引来缩短启动时间。我们需要给springcontextindexer添加一个依赖来生成索引。Spring不需要任何额外的配置。在编译时,Spring将在METAINFspring。components中创建一个附加文件。Spring会在启动时自动使用它:dependencygroupIdorg。springframeworkgroupIdspringcontextindexerartifactIdversion{spring。version}versionoptionalbtrueboptionaldependency
  搜索多个位置
  application。properties(或。yml)文件有几个有效的位置。最常见的是在类路径根目录或与jar文件相同的文件夹中。我们可以通过使用spring。config。location参数设置显式路径来避免搜索多个位置,并在搜索时节省几毫秒:javajar。argetspringStartupApp。jarspring。config。locationclasspath:application。properties
  最后,SpringBoot提供了一些MBean来使用JMX监控我们的应用程序。完全关闭JMX并避免创建这些bean的成本:
  spring。jmx。enabledfalse
  JVM的Verify调整
  此标志设置字节码验证器模式。字节码验证提供类的格式是否正确以及是否在JVM规范约束内。我们在启动期间在JVM上设置了这个标志。
  Verify标志有几个选项:Xverify是默认值并启用对所有非引导加载程序类的验证。Xverify:all启用对所有类的验证。此设置将对初创公司产生显着的负面性能影响。Xverify:none(或Xnoverify)。此选项将完全禁用验证程序并将显着减少启动时间。
  我们可以在启动时传递这个标志:javajarnoverify。argetspringStartupApp。jar
  我们将收到来自JVM的警告,指出该选项已被弃用。但是启动时间减少了。
  这个标志带来了重要的权衡。我们的应用程序可能会在运行时因我们可以更早捕获的错误而中断。这是该选项在Java13中被标记为已弃用的原因之一。因此它将在未来版本中删除。
  JVM分层编译标志
  Java7引入了分层编译。HotSpot编译器将对代码使用不同级别的编译。
  众所周知,Java代码首先被解释为字节码。接下来,字节码被编译成机器码。这种转换发生在方法级别。C1编译器在一定数量的调用后编译一个方法。运行更多次之后,C2编译器会编译它,从而进一步提高性能。
  使用XX:TieredCompilation标志,我们可以禁用中间编译层。这意味着我们的方法将使用C2编译器进行解释或编译,以实现最大程度的优化。这不会导致启动速度下降。我们需要的是禁用C2编译。我们可以使用XX:TieredStopAtLevel1选项来做到这一点。结合noverify标志,这可以减少启动时间。不幸的是,这会在后期减慢JIT编译器的速度。
  SpringNative
  本机映像镜像(Image)是使用提前编译器编译并打包成可执行文件的Java代码。它不需要Java来运行。由于没有JVM开销,因此生成的程序速度更快,对内存的依赖更少。该GraalVM项目介绍本机映像和所需的构建工具。
  SpringNative是一个实验性模块,支持使用GraalVM原生镜像编译器对Spring应用程序进行原生编译。提前编译器在构建期间执行多项任务以减少启动时间(静态分析、删除未使用的代码、创建固定类路径等)。原生镜像仍然有一些限制:它不支持所有Java功能反射需要特殊的配置懒加载类不可用Windows兼容性是一个问题。
  要将应用程序编译为原生映像,我们需要将springaot和springaotmavenplugin依赖项添加到pom。xml。Maven将在目标文件夹中的package命令上创建本机映像。

关于成长的作文成长我家门前有一棵树。春意盎然,微风拂面。生命周而复始,门前树上的一片片嫩绿的树叶在阳光下闪着蜡一般的光。我已经一岁多了,我开始在那树荫下学走路了,睁着一双大大的眼睛看着这棵树,妈……成语故事读后感范文(精选10篇)认真读完一本著作后,相信大家的视野一定开拓了不少,需要写一篇读后感好好地作记录了。那么你真的懂得怎么写读后感吗?下面是小编为大家收集的《成语故事》读后感范文(精选10篇),希望……2021年高考作文热点人物素材1。张继科:破茧成蝶在荷兰鹿特丹阿豪伊体育馆里,世乒赛落下了帷幕。国乒ldquo;板凳队员rdquo;、23岁的张继科首次参加男单比赛就登顶最高峰捧得圣博莱德杯,这位充满……回忆在那片土地初三作文黝黑的土地,蕴含着我的思乡之情;肥沃的土地,记录着我的成长经历;熟悉的土地,承载着我的童年时光。人说,一个人的幸福回忆总是很难忘却的,当然我也不例外。我一生中最快乐的日子……玩陶泥今天,我去上美术课时,老师说:今天我们要一起玩陶泥,请大家跟我去‘陶泥屋’。一到陶泥屋我就看到了个盆子,里面装了一个袋子,表面却没有一点陶泥,我就想:这是装陶泥的袋子吗?……深处空中的云,散了,我们就要分别了。那高大的香樟,唯美的睡莲,芳香的桂花,不会化作天边的云彩,同我们一起哭泣,而是勾起了我对那段学时光的眷恋感恩母校。迈开步伐,带着一份……向往阳光的绿豆作文350字在这么多的植物当中,有人喜欢芬芳的花朵,有人喜欢挺直的树木,而我却喜欢那不起眼的小小的绿豆,因为它向往阳光,积极向上。还记得有一次,我考试没考好,心里十分沮丧,谁劝也不听……那一次我真后悔初一作文700字这是你的吗?母亲探出头来,将一个小小的东西递到我眼前,那是一块小小的拼图,上面布满了灰尘,我的那段记忆原被尘封于脑海中,在看见它的那一刹,又涌了出来。那是一个冬日里的早辰……关于运动会的初三作文秋风微微吹过,一阵清凉。太阳公公也难的放下高姿态对我们也略显温柔。同学们脸上难以抑制的笑容是肿么回事。哦原来啊!本校第一届运动会在今天展开序幕了!随着进场的音乐结束。第一……命里有时终须有,命里无时莫强求,你相信命运吗?我70年生,1992年大学毕业,到2010年的时候我还只是科员一个。2010年,当时有一个不成文的规定,就是年龄超过35岁的基本上就不再提拔担任副科级领导职务了。我当时已……小学作文泉水旅行趣事多春天来了,泉水也要准备去旅行了,要旅行总要有个伴儿吧!现在就跟着泉水的脚步去旅行吧!泉水顺着滑滑梯顺流而下,经过了一片干涸的。小道发现了一条离开环抱的小鱼,泉水连忙上前去……有关小鸟的英语作文小鸟长着尖尖的小嘴,黄黄的小脑袋上嵌着一双又机灵又调皮的黑眼睛,可爱极了。下面请看语文迷为大家带来的小鸟的英语作文,欢迎参考选择。有关小鸟的英语作文【1】Prote……
合并社区部和电商部,小红书系组织自然迭代新京报贝壳财经讯(记者孙文轩),1月25日,有媒体报道称,近日小红书进行了组织架构调整,原有的社区部和电商部将合并成新的社区部门。同时有消息称,小红书COO柯南要带电商业务。……全省开展艾滋病防治宣传系列活动简报艾滋病宣传关注健康,关注艾滋,勇于承担责任,积极关艾抗艾。以下是小编整理的开展艾滋病防治宣传系列活动简报,希望对你有帮助哦全省开展艾滋病防治宣传系列活动简报一:今日上午,……互联网新业态,要守住行业发展边界新华社北京1月25日电1月25日,《新华每日电讯》发表题为《互联网新业态,要守住行业发展边界》的评论。平台随意调整计价规则,会员费上涨,被迫超限超载非法运输谈及当下的网约……使用MySQL的递延Join连接实现高效分页Aaron在Web应用程序中跨大型数据集分页记录似乎是一个简单的问题,但实际上很难扩展。两种主要的分页策略是偏移限制和游标。我们将首先看一下这两种方法,然后稍作修改,可以使偏移限制……cc开发宝典(封装函数)1获取一个字的高位和低位字节defineVALUEL(x)((byte)((word)(x)255))defineVALUEH(x)((byte)((word)(x)8))程序……暑假日记600字初中作文一起来为暑假做计划吧!以下是为您分享的暑假日记600字初中作文,希望你喜欢。暑假日记600字初中作文篇一:今天,是我最难忘的一天。虽然去的那个地方人们并不陌生,但那里的景……车联网政策最新消息中国车联网发展现状与趋势国家出台车联网规划政策,意味着该行业已经进入发展的快车道。时至今日,在我国加快推进交通强国与新基建等顶层设计的作用下,车联网标准体系已经初步建立,产业链初具雏形,相关企业具有较……你见过哪些好看的姓氏壁纸?小张小张,运气高涨!小谢小谢,坚持不懈!小周小周,万事无忧!小吴小吴,烦恼全无!小夏小夏,名扬华夏!小徐小徐,年年有余!小林小林,好运降临!……3000块钱买一个戴森吹风机,你觉得值不值呢?好用吗?这个问题我觉得我相当有发言权。十几年前我某宝买的一个松下的一百多的电吹风,一直在用,质量很好,一直觉得不错,只是功能单一只有热风,夏天吹太热。于是想着买一个有冷风的电吹风,就去……小王子读后感小王子这本书我第一次看时完全不懂,看了几遍后才有些领悟到,看这本书时,不能以大人成熟的心态去看,要以一颗赤子之心的角度去了解它。书墅的小王子有着一份纯真的童心和丰富的想象力。……有什么适合小团队的协作工具?最近新工作的小组内,任务管理都是用维格表进行。对于任务管理,不管是Excel、公司自己系统或是外部敏捷系统其实都用过不少,但是维格表目前最吸引我的,也是我觉得会一直使用下去的服……关于动物的说明文参考范文在地球上,有很多动物和我们一起生活着,大家喜欢什么动物呢?以下是小编精心准备的关于动物的说明文参考范文,大家可以参考以下内容哦!猫动物说明文【1】人们经常会饲养一种高贵而……
友情链接:易事利快生活快传网聚热点七猫云快好知快百科中准网快好找文好找中准网快软网