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

idea 2021.2.2 社区版 + wsl2 卡炸了,开项目很慢

  •  
  •   liuzh365 · 79 天前 · 5443 次点击
    这是一个创建于 79 天前的主题,其中的信息可能已经有所发展或是发生改变。

    网上冲浪的时候看到说最新的 idea 支持 wsl2 的开发环境,于是装了个最新版,把 wsl1 升到了 wsl2,然后 wsl 里面已经有 java 和 maven 环境了,然后我按网上的建议,把项目代码迁到 wsl 里面开发,发现 idea 非常的卡(开项目建索引),点一下鼠标都卡好几下的样子。我试了把代码和环境变量在 wsl 和 windows 来回迁,都有问题:

    ( 1 )开发环境、代码都在 wsl2 里面:idea 非常卡,根本没法正常使用。(怀疑跟 wsl2 比较拉的 IO 有关)而且不显示项目目录,只有一个 pom.xml 。我把.idea 缓存删掉之后重开,idea 直接闪退,再开的话就还是没有项目目录。。。。 ( 2 )开发环境在 wsl2,代码在 windows:idea 根本检测不到 wsl2 里面的 java 环境,一直显示 no sdk,手动指定也没用。 ( 3 )开发环境、代码都在 windows (我装 wsl2 干嘛?):wsl2 识别不了 windows 的 java.exe 环境,linux 应该是要二进制的 java 。而且这样就背离了装 wsl2 的初衷。

    是不是我哪里没装对啊?

    第 1 条附言  ·  79 天前
    版本号打错了,是 2021.2.1
    70 条回复    2021-09-13 10:29:36 +08:00
    liuhuansir
        1
    liuhuansir   79 天前
    同样的情况,已经放弃了,写写 demo 倒是可以,啥时候 idea 有 vscode 的 remote 体验,真就完美了
    pota
        2
    pota   79 天前
    windows 和 wsl 内部 IO 特别慢,你把 idea 装到 wsl2 里面
    hingbong
        3
    hingbong   79 天前
    io 拉跨只跟 Windows 跨 Linux 有关系吧
    我是 idea,代码全在 wsl2 下跑的,界面在 Windows 用 projector-client
    projector-server 现在只支持 2020.3
    Macolor21
        4
    Macolor21   79 天前
    pom 的问题,右键 pom.xml 如果能弹出 Open As Maven Project,说明没有识别成 Maven 项目,点这个就好。
    azur
        5
    azur   79 天前
    mark,同迷惑,求一个 wsl2 使用的最佳实践
    liuzh365
        6
    liuzh365   79 天前
    @Macolor21 没用的,好像还是闪退
    liuzh365
        7
    liuzh365   79 天前 via iPhone
    我电脑是 i71165g7+16g+固态,这个配置不可能卡的。。idea 卡的时候,cpu 内存硬盘空闲都还很多
    statumer
        8
    statumer   79 天前 via Android
    何必用 WSL2 ? WSL2 就是个虚拟机,你自己开虚拟机和用 WSL2 体验是一样的。
    liuzh365
        9
    liuzh365   79 天前 via iPhone
    @statumer 要不是 windows 的命令行不好用。。wsl 既然存在,说明有他的用处啊
    lingxi27
        10
    lingxi27   79 天前
    用过 wsl,体验比 linux 桌面差远了,何必折腾自己
    shilianmlxg
        11
    shilianmlxg   79 天前
    @lingxi27 大佬 ,有什么 windows 好用的命令行,现在用的 cmder 。
    liuzh365
        12
    liuzh365   79 天前 via iPhone
    @lingxi27 架不住营销号尬吹=_=,上当了
    Macolor21
        13
    Macolor21   79 天前
    @liuzh365
    建议开虚拟机使用,你也可以用 Docker 开发,没必要环境全在 Linux 下。
    我现在是这样开发,开发环境,写代码是本地。DEBUG,运行环境是 Docker 的 JDK 环境(底层是镜像是 openjdk,系统是精简的 Ubuntu )使用起来其实和 Linux 没太多。这样你代码还是在本地,只不过所有运行环境都在 Linux 。
    如本地的 mysql,redis 等数据库和中间件,我写了个 Docker-Compose,然后 IDEA 运行的 Docker 容器指定 network 。
    开发代码放在虚拟机,这种思路对我来说很怪。
    我这一套思路是开发代码在本地,运行时,或者 Debug 时,编译然后放到容器去执行,这种更类似于生产环境把。

    PS: 我用的是 Ubuntu 桌面,但是 Docker 和操作系统没太大关系,你程序编译后还是运行在 Linux 下。使用起来和本地运行程序没区别。

    可以看下 2021.1 的 Feature,Run On Docker (好像是)
    Macolor21
        14
    Macolor21   79 天前
    @liuzh365
    还有一个,你觉得命令行不好用,需要使用其他命令(不太清除你这里有什么场景需要用到这个)
    如果是在 Java 程序的环境中执行,直接用 docker 的 exec
    如果是本地的,暂时不知道,我用 Linux
    ysn2233
        15
    ysn2233   79 天前
    建议 idea 装进 wsl2 用 xserver 转发用,除了输中文麻烦其他体验都不错。
    clf
        16
    clf   79 天前
    我是 IDEA 在 windows 下编程,然后运行的时候连接 wsl2 在上面跑。
    forbreak
        17
    forbreak   79 天前
    我已经弃了,我这边配置起来虽然不卡,但是狂吃内存,wsl2 占 4 、5G windows 下 idea 在占 4 、5G 玩个卵子。内存直接飙到 90%多 。wsl2 还是 vscode 的体验好。idea 一堆问题,svn 不能用,gradle 有问题,安卓有问题。什么启动到 wsl2 里面也是问题多多。 总之就是没法用。。。
    xiaoxuxu
        18
    xiaoxuxu   79 天前
    idea 对 wsl2 的支持应该只是 IO 层去访问 wsl2,idea 自身还是运行在 win 里,所以 IO 会非常慢。可以买个 x410 然后 idea 直接装 wsl2 里,速度还是很快的,就是界面有些小 bug,整体还算可用
    justrand
        19
    justrand   79 天前
    目前看来还是 vagrant+virtualbox 最合适
    lingxi27
        20
    lingxi27   79 天前
    @shilianmlxg 一般不用 windows,实在要用 gitbash 凑合能用
    xgfan
        21
    xgfan   79 天前   ❤️ 3
    这属于上了某些软吹的当。

    吹 WSL1 速度快,API 是 Clean Room 实现的,多牛逼,但是不提 API 兼容的复杂度,最后复杂到直接砍了。
    吹 WSL2 兼容好,但是不提 IO 速度一坨屎。


    还有一个 Windows Terminal,建议楼主去学习体验下,就能彻底放弃对 Windows 的幻想了。
    Saxton
        22
    Saxton   79 天前
    我也遇到了,我更新到了最新的 idea,只要一打开 pom.xml 秒卡死,我本来想开 JVM 调试工具的,结果连调试工具跟着一起卡死,最后放弃了
    EIJAM
        23
    EIJAM   79 天前 via iPhone
    不稀奇,wsl 就是个缝合怪胎,什么幺蛾子都会有
    ClutchBear
        24
    ClutchBear   79 天前
    Version: 2021.2.1
    Build: 212.5080.55
    24 August 2021
    刚刚看到最新版本是这个啊.
    mmdsun
        25
    mmdsun   79 天前 via Android
    用 vscode remote + WSL2 流畅的飞起。

    你使用姿势不对,去看 visual studio code 文档和 WSL 2 文档。
    zxCoder
        26
    zxCoder   79 天前 via Android
    @Macolor21 关键是 windows 用 docker 好像比较麻烦吧,还不如 WSL
    zxCoder
        27
    zxCoder   79 天前 via Android
    jetbrain 好像很多 ide 还没有跟 wsl2 完美结合
    zxCoder
        28
    zxCoder   79 天前 via Android
    @justrand 问一下这个具体是怎么配置开发环境的? ide 装在虚拟机里吗
    ch2
        29
    ch2   79 天前
    你需要把 goland 装在 wsl2 里,然后再用 x11 转发 gui 到 windows 上
    Macolor21
        30
    Macolor21   79 天前
    Macolor21
        31
    Macolor21   79 天前
    @zxCoder

    Windows 的 Docker 不是基于 WSL2 或 Hyper-V 么?我只知道部分机器安装可能麻烦些,实际用起来 Docker 应该比 WSL2 舒服把?(虽然我没用过 WSL2 )
    liuzh365
        32
    liuzh365   79 天前 via iPhone
    @ClutchBear 打错了,是 2.1
    liuzh365
        33
    liuzh365   79 天前 via iPhone
    @mmdsun spring 开发还是 idea 舒服点
    ikas
        34
    ikas   79 天前
    wsl2 io 提升是指 wsl2 内部操作 io 的提升
    当前阶段,你要么把 idea 也装到 wsl2 中..然后通过 wsgl 直接显示,要么通过远程,不管是 idea 远程过来或者只是远程部署与编译....
    说真的..当你的工作真的需要 linux 才能完成时,那才需要用 wsl2.比如我做安卓,需要编译下安卓,那么直接 wsl2 编译就很方便.
    aosp 源码直接在本地 ext4 分区.然后挂载到 wsl2
    BeautifulSoap
        35
    BeautifulSoap   79 天前   ❤️ 4
    ls 那么多人也真是的。。。虽说 wsl2 的确很多问题,但你们基本都是一个劲只会黑,也不给 lz 提供切实有效的解决方案。。。。。。

    作为用 wsl2 主力开发一年多没多少屁事的,我给 lz 个建议,lz 你直接把 idea 装 wsl2 里,所有开发环境也放到 wsl2 里,界面通过 x server 传到 win10,让你获得丝滑开发体验。这样的开发方针至今没出过什么幺蛾子(除了输入法麻烦了点)

    微软自己就出过怎么做的教程,总体来说可以说是极其简单

    https://techcommunity.microsoft.com/t5/windows-dev-appconsult/running-wsl-gui-apps-on-windows-10/ba-p/1493242

    也许有人会说你都完全塞 wsl2 了干嘛不用单独虚拟机,答案很简单,虚拟机能像 wsl2 这么轻量,文件操作方面和系统集成这么好,像 wsl2 这样多个虚拟机共用同一块内存,像 wsl2 这样 windows 和 linux 共用同一个 docker 的话,我也乐的迁移虚拟机
    leeyuzhe
        36
    leeyuzhe   79 天前
    所以我用 wslg,虽然也有一些 bug,但是最起码能用,windows 下面的 idea+wls2 基本不能用,全是问题
    @xgfan Windows Terminal 挺好用啊,有什么问题?
    xgfan
        37
    xgfan   79 天前
    u823tg
        38
    u823tg   79 天前
    还好吧,没遇到啥大问题。 不过 java 这种没必要环境要 wsl 吧。
    zeni123
        39
    zeni123   79 天前
    java 就不需要 WSL 了吧。shared folder 好了。 代码也不用共享了,共享 artifacts 好了。
    Zien
        40
    Zien   79 天前 via iPhone
    Java 没试过 和你一样的操作 C 没问题
    mawerss1
        41
    mawerss1   79 天前   ❤️ 1
    idea 装在 wsl2 里,用 x410 做客户端显示 gui,丝般顺滑,值得拥有
    yhrzpm
        42
    yhrzpm   79 天前
    wsl2 底层是个虚拟机吧
    kingfalse
        43
    kingfalse   79 天前 via Android
    Windows 就老老实实放 Windows 跑吧,wsl 到现在依旧是个玩具
    everyx
        44
    everyx   79 天前
    已放弃 wsl2,开几个 docker container 就卡的不要不要的,换到 archlinux,风扇不叫了,干啥流畅了 😂
    Trim21
        45
    Trim21   79 天前 via Android
    @xgfan 配置项不够多之类的还能算缺点,但是这歌帖子里说的这个性能差的问题不跑 benchmark 的话很难感觉的出来…
    OhYee
        46
    OhYee   79 天前
    @azur

    WSL2 + VSCode 体验挺不错的,开发体验起码不亚于 Mac 或 Linux 直接 VSCode (具体要和 IDE 比的话,就得看什么语言了,大部分应该 VSCode 都没啥大问题)
    Dragonphy
        47
    Dragonphy   79 天前
    jetbrains 就别硬搞 WSL 了,不合适,压根不合适,WSL+VS Code 才是大杀器,jetbrains+WSL 配合起来就像弱智,webstorm 在 wsl 上体验都不好。
    UnitTest
        48
    UnitTest   79 天前
    @BeautifulSoap 非常感谢你的分享, 我来得瑟一下, 前端用 wsl 开发比后端简单多了,
    前端无非就是索引一下 node_modules 文件, 启动调用 wsl 的 node 就行.
    我没尝试 java 开发, 我试了一阵 go 开发直接放弃了, 还是基于 windows 开发 go, 有了你这个帖子, 我感觉我重新燃起了希望...
    zzhzero
        49
    zzhzero   79 天前
    @Macolor21 Docker 和宿主机还是有关系的 如果你用的是非 Linux 系统,Docker 也是跑在 VM 上,本质和 wsl2 相同。
    charlie21
        50
    charlie21   79 天前
    @yhrzpm #42 理论上开了之后 win 都是一个虚拟机


    Hyper-V 安装在 win 上之后,此 win 就成了 Hyper-V 上的有一个虚拟机。除了 win 系统本身可以管理 Hyper-V 之外,win 和 Hyper-V 上的其他虚拟机没有本质区别

    v2ex.com/t/564215?p=1#r_7327114
    yhrzpm
        51
    yhrzpm   79 天前
    @charlie21 是这样没错。wsl 我记得是 1:1 翻译 api,运行效率会好一些。wsl2 就是纯 hyperv 虚机
    yhrzpm
        52
    yhrzpm   79 天前
    可以试试 x410 这个收费软件,我感觉运行 wsl 里的 idea 还挺流畅
    @yhrzpm
    changwei
        53
    changwei   79 天前
    wsl2 的 io 效率似乎也很差,如果有用过 webstorm 在 wsl2 里面起一个 nodejs+webpack 的前端项目就能看出差距了,启动时间差不多 wsl2 要慢一倍左右
    ladypxy
        54
    ladypxy   79 天前 via iPhone
    jetbrains 的锅比较大。最新版在我 linux 下都卡到爆,保存文件会直接界面卡死 60 秒,看 log 里面各种 storage timeout……不知道最新版用了什么 api..
    PatrickDingDing
        55
    PatrickDingDing   78 天前
    @Trim21 我日常用感觉挺省心也挺方便的,真没觉得有啥卡顿的。
    Damenly1
        56
    Damenly1   78 天前
    @xgfan 软吹直接反手给你扣个不会用的帽子[doge],提出个把 ide 装到 WSL2 这种方法,是真想得出来🤣
    ebony0319
        57
    ebony0319   78 天前
    mac->ssh 到 windows wls2 .感觉挺丝滑的,
    DandelionFlowers
        58
    DandelionFlowers   78 天前
    请问用的是 oh-my-zsh 吗? 我换到 bash 在某些场景下会好一些.
    https://github.com/spencerwooo/dowww/issues/17#issuecomment-457128479
    Jface
        59
    Jface   78 天前
    一直不会使用 wsl,有没有同学来给指南看看的。
    hingbong
        60
    hingbong   78 天前 via Android
    不知道 ide 装到 wsl 有什么问题,https://github.com/JetBrains/projector-installer 也有 wsl 下的指引
    ztaosony
        61
    ztaosony   78 天前
    这里一般这种时候先喷微软再说,没人解决问题
    ilaipi
        62
    ilaipi   78 天前
    x410 使用中文有问题吗?

    @yhrzpm #51
    @mawerss1 #40
    GrayXu
        63
    GrayXu   78 天前
    wsl2 的 IO 慢指的是和 windows 下 FS 交互的 IO 慢。建议全部迁移到 wsl2 下。
    xianzhe
        64
    xianzhe   78 天前 via Android
    idea 自己问题,之前没这毛病,yourtrack 上已经一堆 issue 了。我现在拿 vscode 暂时顶上,之前 jetbrains 声称 2021.2.1 已经修复,并关闭了一些 issue,但是实际上没啥用
    xianzhe
        65
    xianzhe   78 天前 via Android
    查看 idea 日子你会发现一大堆 thread dump,貌似文件读写有问题
    xianzhe
        66
    xianzhe   78 天前 via Android
    重启 wsl 可能会改善
    yhrzpm
        67
    yhrzpm   78 天前
    @ilaipi 不太清楚,没有中文需求
    fannas
        68
    fannas   78 天前 via iPhone
    问个问题,java 是在 jvm 运行的程式,纯粹的源码在哪里运行差别会有很大吗
    liuzh365
        69
    liuzh365   77 天前
    @ladypxy 反正我个人感觉 2021 比 2020 卡多了。。。
    wsfmzq
        70
    wsfmzq   76 天前
    @liuzh365 是的,我的还伴有高 cpu 占用,退回 2020 就正常
    关于   ·   帮助文档   ·   API   ·   FAQ   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   1060 人在线   最高记录 5497   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 20ms · UTC 23:29 · PVG 07:29 · LAX 15:29 · JFK 18:29
    ♥ Do have faith in what you're doing.