文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

如何将开发环境的 Spring Boot 应用程序内存降低 40% 以上

2024-11-30 02:41

关注

在开发基础的 Spring Boot 应用程序时,我们需要考虑可承受的内存消耗。随着添加更多依赖项,内存消耗也会增加。对于整体应用程序,通常仍然可以承受内存消耗,但当我们开发多个微服务并在本地计算机上运行时,这可能成为一场噩梦,影响开发效率。

Spring Boot 和 JVM 都带有一些默认配置,适用于大多数情况,甚至在某些生产环境中也能胜任。但是如果我们能调整一些配置来适应本地开发,就可以显著减少内存消耗。请注意,我不是 JVM 和 Spring Boot 方面的专家,只是想在这篇文章中分享一些我自己的经验。

谁消耗了内存

首先,让我们了解一下,到底是谁在消耗内存呢?没错,是 JVM。但是它是如何做到的呢?

要深入了解这个问题,我们需要了解 JVM 的内部结构,但这超出了本文的范围。简单来说,JVM 的内存消耗可以分成堆(Heap)、元空间(Metaspace)、每个线程的堆栈(Thread Stack)以及其他。

内存消耗

为了减少内存消耗,我们需要向 JVM 显式地传递一些参数。

首先,我们需要进行一些前置准备:

接下来,我们可以配置一些参数。创建一个名为"dev.jvm.conf"的文件,并输入以下值(稍后我们会解释这些值的含义):

# dev.jvm.conf
# 覆盖应用程序的属性
SERVER_TOMCAT_ACCEPT_COUNT=3
SERVER_TOMCAT_MAX_CONNECTIONS=3
SERVER_TOMCAT_THREADS_MAX=3
SERVER_TOMCAT_THREADS_MIN_SPARE=1
SPRING_MAIN_LAZY_INITIALIZATION=true

# 设置JVM参数
JAVA_TOOL_OPTIONS=-XX:+UseSerialGC -Xss512k -XX:MaxRAM=200m

然后,我们使用 docker-compose 将这些环境变量传递到容器中:

# docker-compose.yml
services:
  service1:
    image: service1:dev
    env_file:
      - dev.jvm.conf

  service2:
    image: service2:dev
    env_file:
      - dev.jvm.conf

现在运行docker-compose up命令,您应该能看到一些差异。

接下来,让我们详细讨论一下这些配置

在开始之前,请记住,降低某些值不会直接减少本地环境中的内存使用量,因为本地环境中通常不会有那么多请求。我们添加阈值的目的是,即使在本地环境中,如果我们开始收到更多请求,也要限制其数量。这最终将有助于限制内存使用。

这是一些简单的调整,但它们可以在本地开发环境中显著减少内存消耗。当然,根据您的具体情况,您可能需要进一步进行调整。这只是一个起点,您可以根据实际需求进行优化。

总结

总而言之,通过适当配置 JVM 和 Spring Boot,并理解内存消耗的原理,我们可以降低本地开发环境的内存消耗,提高工作效率。希望这些提示能对您有所帮助!

来源:waynblog内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯