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

有买了 M1 的 Java 后端么?

  •  1
     
  •   egoistttt · 2020-11-18 14:09:44 +08:00 · 12829 次点击
    这是一个创建于 1445 天前的主题,其中的信息可能已经有所发展或是发生改变。

    ide 之类的倒不用担心,感觉大厂都会跟进 arm 版本的,但是我们后端的一些本地开发组件就不清楚了,nginx,tomcat,数据库,docker,这些在 m1 上能运行会不会有卡顿,能支持你现在的日常开发么?

    39 条回复    2021-02-26 09:41:03 +08:00
    ly61
        1
    ly61  
       2020-11-18 14:11:45 +08:00
    刚买的 macbookpro 16, 所以等两年再换,正好观望一下苹果芯片到底啥样子以后再买
    edw1n
        2
    edw1n  
       2020-11-18 14:15:16 +08:00   ❤️ 5
    yeqizhang
        3
    yeqizhang  
       2020-11-18 14:16:30 +08:00
    nginx 你都能想到卡顿...

    不知道苹果这个 arm 和别的 arm 有什么不同,我觉得软件能运行就问题不大。
    vk42
        4
    vk42  
       2020-11-18 14:19:45 +08:00
    这些除了 docker 应该都没啥问题,docker 本身以后肯定会支持 AS,不过如果你需要打包 docker image 部署到服务器的话那可能是个问题
    andj4cn
        5
    andj4cn  
       2020-11-18 14:49:27 +08:00
    我建议先观望,蹲一下(手动滑稽
    BrettD
        6
    BrettD  
       2020-11-18 14:51:25 +08:00 via iPhone
    开源软件理论上可以自己从源码编译成原生 ARM 二进制
    yaphets666
        7
    yaphets666  
       2020-11-18 14:58:02 +08:00
    在你本地编译出来的是 arm 平台的 可是部署需要 x86 的 还有程序在 arm 平台和 x86 表现可能会出现差异(我猜的) 程序员根本不适合买这个 M1 就是给媒体 /文字工作者 /ppt 准备的
    luckyrayyy
        8
    luckyrayyy  
       2020-11-18 15:00:26 +08:00
    Java 的一次编译处处运行终于能用上了....arm 上编译 x86 上部署应该不会有什么障碍吧
    kischang
        9
    kischang  
       2020-11-18 15:42:53 +08:00
    @luckyrayyy
    当然无障碍,jvm 能运行的地方,java 编译出的 class 就能运行
    java 编译出的是与平台无关的
    abcbuzhiming
        10
    abcbuzhiming  
       2020-11-18 15:46:05 +08:00
    @yaphets666 我没听说 java 编译过的字节码 class 文件还是分平台的。只听说过 JVM 本身是分平台的。至少 java 和.net 这种基于虚拟机和字节码的语言,只要编译器和虚拟机支持硬件就行。
    aniua
        11
    aniua  
       2020-11-18 15:57:20 +08:00
    你应该想想 Oracle 会不会给果子做 Oracle 的 JDK
    shroxd
        12
    shroxd  
       2020-11-18 16:10:48 +08:00   ❤️ 1
    我对待苹果新东西的态度一向是放一段时间了再说,不急着上车
    tsui
        13
    tsui  
       2020-11-18 16:15:23 +08:00
    @aniua 现在 production 没几个用 Oracle JDK 了吧,AWS 猛推 Graviton 还怕没有 ARM 的 JDK ?
    fd7917931e
        14
    fd7917931e  
       2020-11-18 16:22:13 +08:00
    本地编译出来不应该只是本地高度用吗?部署的服务嚣虽然是 x86 的, 但是不应该也通过 CI 服务器重新编译出来吗?或者说, 现在不都用容器来编译和运行?
    just4id
        15
    just4id  
       2020-11-18 16:23:51 +08:00 via iPhone
    你说的这些玩意儿在树莓派上都运行得好好的呢
    allan888
        16
    allan888  
       2020-11-18 16:28:12 +08:00 via Android
    @fd7917931e 理论上是这样,但是还是会有例外,举个例子比如双十一期间 CI 挂了然后又有一个 hotfix 需要尽快 build 然后 deploy,基本上没有什么能比本地 build 更可靠,一个人不能本地 build 无所谓的,不过全公司都不行的话肯定会出问题
    lscho
        17
    lscho  
       2020-11-18 16:28:32 +08:00
    你说的这些感觉完全不是问题。。。
    shyling
        18
    shyling  
       2020-11-18 17:32:21 +08:00
    还活跃的项目肯定问题不大且跟进很快的。。

    不过我确实有点慌,现在日常用的还是 jdk8 多一点。。。各种 jdk 新版支持了 arm,8 不支持就有点蛋疼
    tsui
        19
    tsui  
       2020-11-18 17:59:36 +08:00   ❤️ 1
    @shyling 莫非大家的树莓派跑了好多年的假 Open JDK ?
    inwar
        20
    inwar  
       2020-11-18 18:22:54 +08:00 via Android
    有些官方 docker 镜像没有 arm 版,比如 mysql
    如果用到 jni,可能也不适配,有些包里是有 c 库的
    zjsxwc
        21
    zjsxwc  
       2020-11-18 18:26:21 +08:00 via Android
    到时候服务器也变成 arm 架构?
    lululau
        22
    lululau  
       2020-11-18 18:59:45 +08:00 via iPhone
    开发环境为什么需要依赖 docker,如果需要编译本地代码,用虚拟机,vagrant 也比 docker 方便吧
    Xusually
        23
    Xusually  
       2020-11-18 19:01:26 +08:00
    OpenJDK 现在还不行,今天正好遇到这个问题,Azul 开了一个 JEP391 的 branch 在做移植。
    应该要不了太久。
    hello2060
        24
    hello2060  
       2020-11-18 19:05:22 +08:00 via iPhone
    @shyling 慌啥呀慌,是旧机器不能用了还是有人逼你必须用新机器了
    Xusually
        25
    Xusually  
       2020-11-18 19:05:30 +08:00
    @shyling @tsui @aniua @luckyrayyy OpenJDK 现在还不行,今天正好在 DTK 上处理编译 JDK 的问题,蛋疼的一皮,Azul 开了一个 JEP391 的 branch 在做移植。
    应该要不了太久,因为有 arm64 linux 的基础。

    https://www.azul.com/press_release/azul-announces-support-of-java-builds-of-openjdk-for-apple-silicon/
    https://discussions.apple.com/thread/252025039
    https://github.com/openjdk/jdk-sandbox/tree/JEP-391-branch
    hakono
        26
    hakono  
       2020-11-18 19:10:50 +08:00 via Android
    @lululau 那啥,mac 的 docker 不是原生的,和 Windows 上的 docker 一样,是跑在 linux 虚拟机上的。只要 linux 虚拟机的部分适配了 arm,就算是 arm 平台也无所谓你去用 x86 镜像
    suley
        27
    suley  
       2020-11-18 20:19:24 +08:00
    @zjsxwc 服务器已经有 arm 架构的了,华为云就有。
    VDimos
        28
    VDimos  
       2020-11-18 22:02:47 +08:00 via Android
    @aniua openjdk 在测试了
    zhuangzhuang1988
        29
    zhuangzhuang1988  
       2020-11-18 22:19:54 +08:00
    qinfensky
        30
    qinfensky  
       2020-11-19 04:28:45 +08:00 via iPhone
    我倒是很好奇,新平台支不支持 Elixir 开发?我最近对这个比较感兴趣
    wanguorui123
        31
    wanguorui123  
       2020-11-19 07:49:16 +08:00 via iPhone
    我准备踩下坑
    NerverLibis
        32
    NerverLibis  
       2020-11-19 10:23:05 +08:00
    支持 XP WIN7 hyper-v 吗?
    jmyz0455
        34
    jmyz0455  
       2020-11-19 14:54:44 +08:00
    不用担心吧,服务器不是已经有 ARM 架构的了么。实在不行,我想象苹果的工程师搞好虚拟化,尤其是适配好 Docker 就可以啦。
    zeni123
        35
    zeni123  
       2020-11-20 05:38:17 +08:00 via iPhone
    @stanjia 希望可以有人试一下
    stanjia
        36
    stanjia  
       2020-11-20 12:36:26 +08:00
    @zeni123 我最近想入手 mini 8G 256
    hlobo
        37
    hlobo  
       2020-11-25 08:43:32 +08:00 via Android
    @luckyrayyy jdk 才是关键啊
    superwg1984
        38
    superwg1984  
       2021-01-27 14:16:45 +08:00
    我觉得 arm 以后将会是大势所趋
    starxg
        39
    starxg  
       2021-02-26 09:41:03 +08:00 via iPhone
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   919 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 316ms · UTC 21:32 · PVG 05:32 · LAX 14:32 · JFK 17:32
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.