V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
silentsky
V2EX  ›  程序员

idea 的编译真的是让人难受

  •  
  •   silentsky · 344 天前 via Android · 5891 次点击
    这是一个创建于 344 天前的主题,其中的信息可能已经有所发展或是发生改变。
    编译的时候老是提示堆内存不足,打开自动编译也报一堆错误,打开具体文件报错信息又消失了,让人捉摸不透,想彻底放弃 eclipse 不太可能了,编译还得是 eclipse
    25 条回复    2023-12-24 14:01:20 +08:00
    giter
        1
    giter  
       344 天前
    老是提示堆内存不足??
    打开自动编译也报一堆错误??
    打开具体文件报错信息又消失了??
    编译还得是 eclipse ??
    Dongxiaohao
        2
    Dongxiaohao  
       344 天前
    这是 IDEA 的问题嘛,IDEA 确实吃内存,但我没遇到过你说的这个问题🤔
    oneisall8955
        3
    oneisall8955  
       344 天前 via Android
    电脑啥配置,分配给 idea 多少,idea 中编译配置,maven 配置的图贴出来看看
    silentsky
        4
    silentsky  
    OP
       344 天前 via Android
    @Dongxiaohao 我这边几十个项目放一起 相互依赖
    silentsky
        5
    silentsky  
    OP
       344 天前 via Android
    @oneisall8955 分了 8g
    kneo
        6
    kneo  
       344 天前 via Android
    内存不足?截图给老板看啊。
    zsxzy
        7
    zsxzy  
       344 天前
    几十个项目, 8g 内存, 目前市场价 100 块钱... 你这些项目不太值钱吧 :)
    binbin0915jjpp
        8
    binbin0915jjpp  
       344 天前
    32G 机器
    silentsky
        9
    silentsky  
    OP
       344 天前 via Android
    @binbin0915jjpp 电脑只有 16g 内存
    mylovesaber
        10
    mylovesaber  
       344 天前   ❤️ 1
    这么说吧,idea 或者是 jb 家的其他软件,我有次调试生产数据时(一次达到千万条),datagrip 老崩溃,然后我手动设置内存占用直接给到 64g ,然后没崩溃过了,看内存占用情况发现 64g 全吃满。

    正经 java 项目开发,16g 都属于不够用的,我司给每个开发配的台式电脑一律 32g 起步。

    如果你老板不愿意加内存,又是几十个项目相互依赖启动,那么有一个办法解决,那就是借助私有 maven 仓库。

    把那些底层依赖做成 jar 包传上去,然后在新项目的 pom.xml 中指定那堆依赖的 jar 包坐标,这样几十个 jar 包运行起来作为依赖来运行新项目的编译,16g 够用的。

    如果 bug 是底层某个依赖出的问题,可以单独修复那个依赖的 bug 然后自动发布到私有 maven 仓库中,然后再调试最终的新项目,所以怎么搞都是够用的,idea 足够好用,坚守 eclipse 可能只有这些原因:

    1. 维护的项目老得离谱
    2. 组内有大牛专精 eclipse ,不喜欢 idea ,而且有绝对话语权,你们都得迁就他
    3. 你们心态上有版权洁癖,不想买正版 jb 全家桶,也不屑用 d 版
    4. 你们有的项目用到一些插件只有 eclipse 才有的
    5. 你们没有私有 maven 仓库,项目初始化时无法脱离网络而完成

    我个人暂时想到这些理由,否则没有理由放着高铁不坐,非得走路从北京到广州
    BBCCBB
        11
    BBCCBB  
       344 天前
    @mylovesaber 吃满是因为只要还有, 就会先用满, 然后再去回收. jvm 自己管理内存. 他回收了不会还给操作系统.. 因为你给他分的就是 64G.
    mylovesaber
        12
    mylovesaber  
       344 天前
    @BBCCBB 是这样,但 jb 软件右下角能看到项目运行时必要的内存用了多少(不排除是插件实现的),我意思是我分了 64g ,然后实际占用 63g+,平时一个项目给 2g ,实际占用有多有少,当然了宿主机那边肯定看到 2g 用掉的
    YaakovZiv
        13
    YaakovZiv  
       344 天前
    想到了以前和国外客户合作项目,我电脑运行软件测试功能总是异常,后来客户问我硬件配置。我俩互相截图后发现,对方是高配置的服务器,我用的普通台式机。
    silentsky
        14
    silentsky  
    OP
       344 天前 via Android
    @mylovesaber 私服到是有 每次修改都上传总觉得不太方便 有时分支多 如果只是维护一两个项目那就舒服了
    blankmiss
        15
    blankmiss  
       344 天前
    @mylovesaber 哈哈哈 不一定是项目导致的内存很大 有时候插件也会有内存问题
    yui34567
        16
    yui34567  
       344 天前
    @mylovesaber "这样几十个 jar 包运行起来作为依赖来运行新项目的编译"为什么这样就能节省内存呢
    tomorrow092
        17
    tomorrow092  
       344 天前
    @kneo 老板回复,别人都行就你不行,是不是自己能力有问题,明天去办理离职吧
    moshiyeap100
        18
    moshiyeap100  
       344 天前
    跟 idea 可能关系不大 直接用 maven 编译咯
    iseki
        19
    iseki  
       344 天前
    你们使用 IDEA 而非诸如 Maven/Gradle 的构建系统吗,脱离 IDE 时怎么办啊
    pain2w
        20
    pain2w  
       344 天前
    这个时候就体现出 vim 这类自由度高的编辑器好处了。
    pannanxu
        21
    pannanxu  
       344 天前
    虽然但是。编译不是 gradle 、maven 这类东西处理的吗。编译慢也得找找自己项目架构设计的是否合理,是否正确使用了工程化,是否有将改动小的模块提出来合理运用缓存策略。
    silentsky
        22
    silentsky  
    OP
       344 天前 via Android
    @pannanxu 这个世界很多事情并不都是合理 你觉得呢
    n18255447846
        23
    n18255447846  
       343 天前
    前端路过看戏😁
    JimmyChan1506
        24
    JimmyChan1506  
       343 天前
    几十个项目相互依赖, 但为什么你不是修改哪个项目就编译哪个项目就好呢?

    大不了新建一个 project, 需要修改哪个 module 就导进来, 不需要的也就没有办法非要导进来编译吧.
    或者 Settings -> Build, Execution , Deployment -> Compiler -> Excludes 把不需要编译的 module 加进来试试看?

    另外依赖的项目 install 到本地的 maven 仓库应该也不用到私服吧?
    lujiaosama
        25
    lujiaosama  
       342 天前
    本地内存不值钱, 我上 64G 的随便搞. 服务器上的内存占用才头大, 8G 内存都不够吃的.
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2616 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 05:33 · PVG 13:33 · LAX 21:33 · JFK 00:33
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.