码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • intellij idea在macOS下卡顿的问题解决方法


    前言

    不知道从什么时候开始intellij idea的run和debug Springboot项目时非常卡,经常要卡顿很久才能启动,笔者只以为是idea的优化不太好,但是通过搜索,发现很多提问卡顿的,有说退回2018版本就不卡了。也有说配置jvm的堆大小的,但是笔者配置堆大小没用。

    优化

    优化就是修改jvm的堆大小,分配更大的内存,毕竟idea是Java开发的,在idea打开很多项目时,这个方法可以避免OOM。

    在help下打开VM选项

    设置堆最大值,跟普通项目设置jvm一样,其他参数也可以设置,看需求,在有同时打开很多项目时很有用。

     

     

    设置hostname

    实际上,笔者设置了JVM参数,并不能解决run或者debug时,经常卡顿10多秒才运行的问题,直到一天查资料,发现了根本原因,需要hosts文件设置hostname,特么奇怪的需求。

    Intellij freezes when running debug on Mac : IDEA-157303 (jetbrains.com)

    问题来源于上面的官方issue。实际上卡顿时可以通过jstack看main线程的栈信息来看为什么run或者debug的时候卡顿

     通过jstack,发现main线程在读取hostAddr,错怪idea了,根源居然在Springboot,😅,没想到吧,锅是Springboot的,错怪idea了,哈哈,笔者这里是取IPV6的host

    1. class Inet6AddressImpl implements InetAddressImpl {
    2. public native String getLocalHostName() throws UnknownHostException;
    3. public native InetAddress[] lookupAllHostAddr(String hostname)
    4. throws UnknownHostException;
    5. class Inet4AddressImpl implements InetAddressImpl {
    6. public native String getLocalHostName() throws UnknownHostException;
    7. public native InetAddress[]
    8. lookupAllHostAddr(String hostname) throws UnknownHostException;

    都是native方法,底层是JNI调用,这步消耗了很长时间,通过配置hostname即可消除

    sudo vim /etc/hosts

    hostname即可看hostname

     配置好hosts

    source /etc/hosts

    生效 ,从此Springboot启动就不卡了,很流畅。

    总结

    很多时候出现问题,需要分析,比如idea的优化,实际上是不够用了才优化,如果默认情况下流程,其实不用管,比如这个Springboot应用启动卡顿的问题,通过jstack可以发现阻塞10多秒是获取hostname的过程,通过main方法的栈信息可以看到代码执行,对比openjdk的源码也可以定位出阻塞的原因,针对解决。

  • 相关阅读:
    Prometheus+grafana监控--初探
    day15--Java常用类之日期相关类
    2.16 这些都是我常用的修图工具【玩赚小红书】
    力扣hot100——第6天:32最长有效括号、33搜索旋转排序数组、34在排序数组中查找元素的第一个和最后一个位置
    稻盛和夫《干法》
    并联型模糊PID复合控制器的simulink建模与仿真
    华为云发布拉美互联网战略,携手客户与伙伴迈向云原生2.0新时代
    华南理工大学建筑学院建筑设计及其理论专业考研上岸经验分享
    使用C语言实现队列
    单调栈leetcode.907
  • 原文地址:https://blog.csdn.net/fenglllle/article/details/126550996
  • 最新文章
  • 沪漂五周年了:我越来越迷茫了
    Agentic Skill Routing 实战:别再把所有 Skill 塞进 AI Agent 上下文
    MySQL-Seconds_behind_master的精度误差
    [MAF预定义ChatClient中间件-03]CachingChatClient——利用缓存省钱省时间
    AI的至暗历史:从万众期待到被政府撤资,AI的两次死亡徘徊
    Agent OS :五种驯服不确定性的范式
    PortSwigger SQL注入LAB11
    数据库即时编译JIT
    [Begin]AI Learn Data Day 0
    深度学习进阶(二十七)现代 LLM 的核心架构设计其二:SwiGLU
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号