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

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

  •  
  •   liuzh365 · 2021-09-10 09:51:59 +08:00 · 11807 次点击
    这是一个创建于 930 天前的主题,其中的信息可能已经有所发展或是发生改变。

    网上冲浪的时候看到说最新的 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 条附言  ·  2021-09-10 13:10:55 +08:00
    版本号打错了,是 2021.2.1
    74 条回复    2022-10-23 10:13:42 +08:00
    liuhuansir
        1
    liuhuansir  
       2021-09-10 09:56:03 +08:00
    同样的情况,已经放弃了,写写 demo 倒是可以,啥时候 idea 有 vscode 的 remote 体验,真就完美了
    pota
        2
    pota  
       2021-09-10 09:56:21 +08:00
    windows 和 wsl 内部 IO 特别慢,你把 idea 装到 wsl2 里面
    hingbong
        3
    hingbong  
       2021-09-10 09:56:30 +08:00
    io 拉跨只跟 Windows 跨 Linux 有关系吧
    我是 idea,代码全在 wsl2 下跑的,界面在 Windows 用 projector-client
    projector-server 现在只支持 2020.3
    Macolor21
        4
    Macolor21  
       2021-09-10 09:56:42 +08:00
    pom 的问题,右键 pom.xml 如果能弹出 Open As Maven Project,说明没有识别成 Maven 项目,点这个就好。
    azur
        5
    azur  
       2021-09-10 09:58:13 +08:00
    mark,同迷惑,求一个 wsl2 使用的最佳实践
    liuzh365
        6
    liuzh365  
    OP
       2021-09-10 10:02:13 +08:00
    @Macolor21 没用的,好像还是闪退
    liuzh365
        7
    liuzh365  
    OP
       2021-09-10 10:06:20 +08:00 via iPhone
    我电脑是 i71165g7+16g+固态,这个配置不可能卡的。。idea 卡的时候,cpu 内存硬盘空闲都还很多
    statumer
        8
    statumer  
       2021-09-10 10:15:36 +08:00 via Android
    何必用 WSL2 ? WSL2 就是个虚拟机,你自己开虚拟机和用 WSL2 体验是一样的。
    liuzh365
        9
    liuzh365  
    OP
       2021-09-10 10:19:34 +08:00 via iPhone
    @statumer 要不是 windows 的命令行不好用。。wsl 既然存在,说明有他的用处啊
    lingxi27
        10
    lingxi27  
       2021-09-10 10:20:59 +08:00
    用过 wsl,体验比 linux 桌面差远了,何必折腾自己
    shilianmlxg
        11
    shilianmlxg  
       2021-09-10 10:22:23 +08:00
    @lingxi27 大佬 ,有什么 windows 好用的命令行,现在用的 cmder 。
    liuzh365
        12
    liuzh365  
    OP
       2021-09-10 10:23:15 +08:00 via iPhone
    @lingxi27 架不住营销号尬吹=_=,上当了
    Macolor21
        13
    Macolor21  
       2021-09-10 10:29:12 +08:00
    @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  
       2021-09-10 10:31:07 +08:00
    @liuzh365
    还有一个,你觉得命令行不好用,需要使用其他命令(不太清除你这里有什么场景需要用到这个)
    如果是在 Java 程序的环境中执行,直接用 docker 的 exec
    如果是本地的,暂时不知道,我用 Linux
    ysn2233
        15
    ysn2233  
       2021-09-10 10:32:57 +08:00
    建议 idea 装进 wsl2 用 xserver 转发用,除了输中文麻烦其他体验都不错。
    clf
        16
    clf  
       2021-09-10 10:38:30 +08:00
    我是 IDEA 在 windows 下编程,然后运行的时候连接 wsl2 在上面跑。
    forbreak
        17
    forbreak  
       2021-09-10 10:41:41 +08:00
    我已经弃了,我这边配置起来虽然不卡,但是狂吃内存,wsl2 占 4 、5G windows 下 idea 在占 4 、5G 玩个卵子。内存直接飙到 90%多 。wsl2 还是 vscode 的体验好。idea 一堆问题,svn 不能用,gradle 有问题,安卓有问题。什么启动到 wsl2 里面也是问题多多。 总之就是没法用。。。
    xiaoxuxu
        18
    xiaoxuxu  
       2021-09-10 10:52:57 +08:00
    idea 对 wsl2 的支持应该只是 IO 层去访问 wsl2,idea 自身还是运行在 win 里,所以 IO 会非常慢。可以买个 x410 然后 idea 直接装 wsl2 里,速度还是很快的,就是界面有些小 bug,整体还算可用
    justrand
        19
    justrand  
       2021-09-10 10:58:19 +08:00
    目前看来还是 vagrant+virtualbox 最合适
    lingxi27
        20
    lingxi27  
       2021-09-10 11:08:00 +08:00
    @shilianmlxg 一般不用 windows,实在要用 gitbash 凑合能用
    xgfan
        21
    xgfan  
       2021-09-10 11:11:17 +08:00   ❤️ 3
    这属于上了某些软吹的当。

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


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

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

    Windows 的 Docker 不是基于 WSL2 或 Hyper-V 么?我只知道部分机器安装可能麻烦些,实际用起来 Docker 应该比 WSL2 舒服把?(虽然我没用过 WSL2 )
    liuzh365
        32
    liuzh365  
    OP
       2021-09-10 13:10:33 +08:00 via iPhone
    @ClutchBear 打错了,是 2.1
    liuzh365
        33
    liuzh365  
    OP
       2021-09-10 13:11:34 +08:00 via iPhone
    @mmdsun spring 开发还是 idea 舒服点
    ikas
        34
    ikas  
       2021-09-10 13:12:46 +08:00
    wsl2 io 提升是指 wsl2 内部操作 io 的提升
    当前阶段,你要么把 idea 也装到 wsl2 中..然后通过 wsgl 直接显示,要么通过远程,不管是 idea 远程过来或者只是远程部署与编译....
    说真的..当你的工作真的需要 linux 才能完成时,那才需要用 wsl2.比如我做安卓,需要编译下安卓,那么直接 wsl2 编译就很方便.
    aosp 源码直接在本地 ext4 分区.然后挂载到 wsl2
    BeautifulSoap
        35
    BeautifulSoap  
       2021-09-10 13:19:58 +08:00   ❤️ 6
    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  
       2021-09-10 13:47:40 +08:00
    所以我用 wslg,虽然也有一些 bug,但是最起码能用,windows 下面的 idea+wls2 基本不能用,全是问题
    @xgfan Windows Terminal 挺好用啊,有什么问题?
    xgfan
        37
    xgfan  
       2021-09-10 14:31:12 +08:00
    u823tg
        38
    u823tg  
       2021-09-10 16:39:43 +08:00
    还好吧,没遇到啥大问题。 不过 java 这种没必要环境要 wsl 吧。
    zeni123
        39
    zeni123  
       2021-09-10 17:53:07 +08:00
    java 就不需要 WSL 了吧。shared folder 好了。 代码也不用共享了,共享 artifacts 好了。
    Zien
        40
    Zien  
       2021-09-10 18:14:43 +08:00 via iPhone
    Java 没试过 和你一样的操作 C 没问题
    mawerss1
        41
    mawerss1  
       2021-09-10 18:16:21 +08:00   ❤️ 1
    idea 装在 wsl2 里,用 x410 做客户端显示 gui,丝般顺滑,值得拥有
    yhrzpm
        42
    yhrzpm  
       2021-09-10 18:31:44 +08:00
    wsl2 底层是个虚拟机吧
    kingfalse
        43
    kingfalse  
       2021-09-10 18:35:08 +08:00 via Android
    Windows 就老老实实放 Windows 跑吧,wsl 到现在依旧是个玩具
    everyx
        44
    everyx  
       2021-09-10 19:43:29 +08:00
    已放弃 wsl2,开几个 docker container 就卡的不要不要的,换到 archlinux,风扇不叫了,干啥流畅了 😂
    Trim21
        45
    Trim21  
       2021-09-10 19:52:07 +08:00 via Android
    @xgfan 配置项不够多之类的还能算缺点,但是这歌帖子里说的这个性能差的问题不跑 benchmark 的话很难感觉的出来…
    OhYee
        46
    OhYee  
       2021-09-10 20:00:49 +08:00
    @azur

    WSL2 + VSCode 体验挺不错的,开发体验起码不亚于 Mac 或 Linux 直接 VSCode (具体要和 IDE 比的话,就得看什么语言了,大部分应该 VSCode 都没啥大问题)
    Dragonphy
        47
    Dragonphy  
       2021-09-10 21:00:23 +08:00
    jetbrains 就别硬搞 WSL 了,不合适,压根不合适,WSL+VS Code 才是大杀器,jetbrains+WSL 配合起来就像弱智,webstorm 在 wsl 上体验都不好。
    UnitTest
        48
    UnitTest  
       2021-09-10 21:06:10 +08:00
    @BeautifulSoap 非常感谢你的分享, 我来得瑟一下, 前端用 wsl 开发比后端简单多了,
    前端无非就是索引一下 node_modules 文件, 启动调用 wsl 的 node 就行.
    我没尝试 java 开发, 我试了一阵 go 开发直接放弃了, 还是基于 windows 开发 go, 有了你这个帖子, 我感觉我重新燃起了希望...
    zzhzero
        49
    zzhzero  
       2021-09-11 00:05:18 +08:00
    @Macolor21 Docker 和宿主机还是有关系的 如果你用的是非 Linux 系统,Docker 也是跑在 VM 上,本质和 wsl2 相同。
    charlie21
        50
    charlie21  
       2021-09-11 00:29:36 +08:00
    @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  
       2021-09-11 03:26:27 +08:00
    @charlie21 是这样没错。wsl 我记得是 1:1 翻译 api,运行效率会好一些。wsl2 就是纯 hyperv 虚机
    yhrzpm
        52
    yhrzpm  
       2021-09-11 03:27:42 +08:00
    可以试试 x410 这个收费软件,我感觉运行 wsl 里的 idea 还挺流畅
    @yhrzpm
    changwei
        53
    changwei  
       2021-09-11 04:13:15 +08:00
    wsl2 的 io 效率似乎也很差,如果有用过 webstorm 在 wsl2 里面起一个 nodejs+webpack 的前端项目就能看出差距了,启动时间差不多 wsl2 要慢一倍左右
    ladypxy
        54
    ladypxy  
       2021-09-11 06:54:28 +08:00 via iPhone
    jetbrains 的锅比较大。最新版在我 linux 下都卡到爆,保存文件会直接界面卡死 60 秒,看 log 里面各种 storage timeout……不知道最新版用了什么 api..
    PatrickDingDing
        55
    PatrickDingDing  
       2021-09-11 08:14:20 +08:00
    @Trim21 我日常用感觉挺省心也挺方便的,真没觉得有啥卡顿的。
    Damenly1
        56
    Damenly1  
       2021-09-11 09:22:06 +08:00
    @xgfan 软吹直接反手给你扣个不会用的帽子[doge],提出个把 ide 装到 WSL2 这种方法,是真想得出来🤣
    ebony0319
        57
    ebony0319  
       2021-09-11 09:42:14 +08:00
    mac->ssh 到 windows wls2 .感觉挺丝滑的,
    DandelionFlowers
        58
    DandelionFlowers  
       2021-09-11 09:57:41 +08:00
    请问用的是 oh-my-zsh 吗? 我换到 bash 在某些场景下会好一些.
    https://github.com/spencerwooo/dowww/issues/17#issuecomment-457128479
    Jface
        59
    Jface  
       2021-09-11 10:05:13 +08:00
    一直不会使用 wsl,有没有同学来给指南看看的。
    hingbong
        60
    hingbong  
       2021-09-11 10:29:54 +08:00 via Android
    不知道 ide 装到 wsl 有什么问题,https://github.com/JetBrains/projector-installer 也有 wsl 下的指引
    ztaosony
        61
    ztaosony  
       2021-09-11 10:44:48 +08:00
    这里一般这种时候先喷微软再说,没人解决问题
    ilaipi
        62
    ilaipi  
       2021-09-11 14:19:13 +08:00
    x410 使用中文有问题吗?

    @yhrzpm #51
    @mawerss1 #40
    GrayXu
        63
    GrayXu  
       2021-09-11 14:46:01 +08:00
    wsl2 的 IO 慢指的是和 windows 下 FS 交互的 IO 慢。建议全部迁移到 wsl2 下。
    xianzhe
        64
    xianzhe  
       2021-09-11 18:19:40 +08:00 via Android
    idea 自己问题,之前没这毛病,yourtrack 上已经一堆 issue 了。我现在拿 vscode 暂时顶上,之前 jetbrains 声称 2021.2.1 已经修复,并关闭了一些 issue,但是实际上没啥用
    xianzhe
        65
    xianzhe  
       2021-09-11 18:21:38 +08:00 via Android
    查看 idea 日子你会发现一大堆 thread dump,貌似文件读写有问题
    xianzhe
        66
    xianzhe  
       2021-09-11 18:23:16 +08:00 via Android
    重启 wsl 可能会改善
    yhrzpm
        67
    yhrzpm  
       2021-09-11 19:39:16 +08:00
    @ilaipi 不太清楚,没有中文需求
    fannas
        68
    fannas  
       2021-09-11 19:43:07 +08:00 via iPhone
    问个问题,java 是在 jvm 运行的程式,纯粹的源码在哪里运行差别会有很大吗
    liuzh365
        69
    liuzh365  
    OP
       2021-09-12 14:50:25 +08:00
    @ladypxy 反正我个人感觉 2021 比 2020 卡多了。。。
    INTOX8O
        70
    INTOX8O  
       2021-09-13 10:29:36 +08:00
    @liuzh365 是的,我的还伴有高 cpu 占用,退回 2020 就正常
    whee
        71
    whee  
       2022-10-13 00:47:41 +08:00
    22 年底尝试 wsl2 ,跑了一天多,目前看除了新加载项目的时候会比较卡,其他时候可用了
    环境-win10+ wsl2
    whee
        72
    whee  
       2022-10-13 00:48:38 +08:00   ❤️ 1
    补充一下安装方案,环境和代码都在 wsl2 里面,idea/goland 放在 win ,前面有朋友说 webstorm,回来我再试试
    whee
        73
    whee  
       2022-10-18 18:16:53 +08:00
    回来继续补充,经过几天的尝试,总的来说,jet 家的 ide 用起来还是比较吃劲,会有卡顿,io 还是不行,表现为打开 /编辑文件时的卡顿。
    继续尝试一下 vscode
    Derrick92
        74
    Derrick92  
       2022-10-23 10:13:42 +08:00
    @whee 蹲坑,看看层主使用的如何? jetbrains+WSL2 表现这么差嘛
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   3169 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 30ms · UTC 12:34 · PVG 20:34 · LAX 05:34 · JFK 08:34
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.