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

250M 的 Java 程序,用 go 重构,只需要 8M

  •  
  •   karottc ·
    karottc · 2024-07-21 21:48:39 +08:00 · 23657 次点击
    这是一个创建于 378 天前的主题,其中的信息可能已经有所发展或是发生改变。

    把之前的 java 程序,这周学了下 golang ,然后用 golang 重构了下,稳定运行之后内存占用 8M 。

    前文:

    果然吃内存,一个简单的 Java 程序就占用了 250M 内存

    quarkus-graalvm 可以救 Java native 一命

    程序功能如下:

    • 每 10 分钟抓取某个链接的数据
    • 抓取到的内容和 mysql 里面已有的内容作对比
    • 存在就更新,不存在就插入到 mysql 中
    • 每天早上 10 点发送一个企业微信通知
    • 提供一个 rest 接口,上面的功能,可以通过定时触发,也可以通过接口手动触发(保留为了调试和验证程序情况,稳定之后几乎不会调用)。
    • 使用了 gin + gorm + cron 库(因为之前的 java 程序用了 sprinboot, 所以 go 我也特地选了大的库来使用)。

    这几天的结果如下:

    java springboot: 250M

    java (无框架):90M

    java, quarkus + graalvm + native: 50M

    python: 20M

    go: 8-10M 。


    本来想用下 rust, 发现如果不系统的学习,根本没发写出正常的程序,暂时放弃了。


    go 在资源受限的情况下,确实表现很好。之前我是排斥学 go 的,这次做项目发现,也不是不能接受。我之前写 C 的,要啥啥没有,现在有了 go, 就是 c with gc ,而且库多(相比于 c )。而且交叉编译非常方便。

    不过工作中暂时用不到 go ,玩完了。 我还是选择 kotlin

    第 1 条附言  ·  2024-07-22 20:22:33 +08:00

    今天借助chatGPT,用rust 重构了一版,功能完全是等同的,内存消耗:14M。比go 大,但是执行程序小了很多,只有7M。

    内存更大可能是因为我选的库和依赖和实现的问题的,因为我只是之前学过rust 教程,并不能独立写出rust程序,必须要通过chatGPT的帮助才行。


    到目前为止,用java、go、rust 都写了一版,这个系列可以结贴了。

    这个项目非常小,但是完全可以作为学习后端web开发的起手入门项目,涉及到的知识点和CRUD操作都有了。开发的过程也本着一个原则的:方便后续迭代和维护,方便增加新功能。 (所以那些用shell 命令来做相同的事的,虽然可以,但是不符合这个原则,所以没有去尝试)

    有兴趣有时间来做不同语言的实验(目前只做了感兴趣的这几个语言,别的语言平台,比如.net 之类的,欢迎各位来分享结果),只是为了以后碰到各种情况的时候,做合适的技术选型。

    当然很多结论是我个人的主观感受,当然涉及到个人看法肯定都是主观的,我年纪越大现在反而越讨厌那些看似中立的观点(实际啥用都没有)。

    152 条回复    2024-07-24 12:30:14 +08:00
    1  2  
    tanranran
        1
    tanranran  
       2024-07-21 21:52:54 +08:00
    大佬可以试下 kotlin native
    saranz
        2
    saranz  
       2024-07-21 22:12:38 +08:00
    其实就和 react 一样,业务代码一丢丢,但是库文件占了线上代码的大部分。
    用 Solid 重构之后线上代码变小了很多一个样。
    boqiqita
        3
    boqiqita  
       2024-07-21 22:15:35 +08:00   ❤️ 26
    试试 shell 命令,估计就几十 kb
    potatowish
        4
    potatowish  
       2024-07-21 22:18:28 +08:00 via iPhone
    可以再试试用 servlet 实现,少用三方库,springboot 太占内存,
    arloor
        5
    arloor  
       2024-07-21 22:22:03 +08:00
    哈哈,我也是一路从 java 走到 go ,后面又走到了 rust ,内存占用真的少。
    silvernoo
        6
    silvernoo  
       2024-07-21 22:31:04 +08:00
    @boqiqita #3 shell 内存全被 curl 占了
    silvernoo
        7
    silvernoo  
       2024-07-21 22:31:50 +08:00   ❤️ 3
    总结,Java 一坨屎,落后的毒瘤
    aeiou520
        8
    aeiou520  
       2024-07-21 22:34:53 +08:00
    不懂你怎么选的依赖。我这边 springboot 按照你的功能点选依赖 jdbc ,mysql 驱动,starter-web ,打出来的包也就 21mb
    aeiou520
        9
    aeiou520  
       2024-07-21 22:40:50 +08:00
    @aeiou520 哈哈~看错了,以为是打包的
    sagaxu
        10
    sagaxu  
       2024-07-21 22:49:11 +08:00
    quarkus native 应该能优化到 20M 以内
    keepRun
        11
    keepRun  
       2024-07-21 22:54:28 +08:00
    我为了测试 web 占用大小,还测试过 rust ,可以做到 4m
    keepRun
        12
    keepRun  
       2024-07-21 23:04:56 +08:00
    这我以前写的应该有点作用:《 graalvm 拯救了 Java 的启动速度,但没法拯救 Java 的内存占用》 https://ex.noerr.eu.org/t/1005841
    mark2025
        13
    mark2025  
       2024-07-21 23:13:27 +08:00
    @keepRun go, rust 偏底层,写应用业务没那边顺畅,折衷选 TS+nodejs:既有 js 灵活以及 TS 类型保护,也没有 spring 全家桶那么重(占用资源太多)
    inframe
        14
    inframe  
       2024-07-21 23:14:28 +08:00
    写代码实现功能,最快的估计还是 python
    darkengine
        15
    darkengine  
       2024-07-21 23:15:30 +08:00   ❤️ 13
    没有坏的语言/框架,只有坏的实现。

    这个需求选 Java/SpringBoot 是杀鸡用牛刀。
    si
        16
    si  
       2024-07-21 23:18:58 +08:00
    打包看了下,JAR 文件 24MB ,运行起来用了 350MB 内存。
    kk2syc
        17
    kk2syc  
       2024-07-21 23:32:45 +08:00   ❤️ 1
    @inframe 写代码实现功能,最快的是 php ,连代码格式都不需要考虑。打开记事本就能写 /斜眼笑 /狗头
    karottc
        18
    karottc  
    OP
       2024-07-21 23:35:44 +08:00
    @tanranran 本来想试下的,结果 kotlin native 还不支持 mysql, 只支持 sqlite, 所以优先级往后放了。
    karottc
        19
    karottc  
    OP
       2024-07-21 23:36:35 +08:00
    @boqiqita 那我不得行,我的出发点还是,要方便后续维护迭代升级,加功能必须要方便。
    zzzmh
        20
    zzzmh  
       2024-07-21 23:36:53 +08:00   ❤️ 5
    说的没毛病,但我作为一个不会 go 的 java 也要给 java 说几句好话找补一下
    现在服务器没那么贵的离谱的情况下,多 1 个 G 的内存,也没那么重要
    N 年前的 JAVA ,也没比他以前的老同行省内存过,照样不耽误卷死同行,
    个人认为 Java 的优势在培养一个程序员成本低,开发大型项目难度小周期成本低。
    反过来想,理论上假如说你全部手搓代码,C 搓一个程序,肯定比 Java 性能强 N 倍,多系统运行不在话下,但培养一个员工的成本血贵,开发大型项目时间周期太长,这些成本远超内存上的这点小钱
    bronyakaka
        21
    bronyakaka  
       2024-07-21 23:42:26 +08:00   ❤️ 2
    非要用 springboot 这种重量级框架那还怪 java 吃内存干什么,java 技术栈也有很多轻量级框架。go 写 web 真的超级难用,只适合很简单的业务逻辑
    keepRun
        22
    keepRun  
       2024-07-21 23:48:47 +08:00
    现在手机普遍都 12g 内存了,内存其实很便宜,国内的流量带宽才是跟金子一样
    march1993
        23
    march1993  
       2024-07-21 23:53:50 +08:00
    内存虽然越来越便宜,但是 CPU 的 cacheline 其实近十年也没有太大的长进,省内存可能会带来性能上的优势
    youyang
        24
    youyang  
       2024-07-21 23:59:45 +08:00
    @keepRun 运营商还天天说亏损呢
    jackmod
        25
    jackmod  
       2024-07-22 00:18:20 +08:00
    golang 学起来确实快,需求驱动,入门不到 4 小时。
    我也准备把 python 写的差不多稳定的原型改成 go 作为学习。
    至于 rust ,真就下次一定了(
    darrh00
        26
    darrh00  
       2024-07-22 00:47:36 +08:00
    gin 和 springboot 相比,完善度有多少?
    maigebaoer
        27
    maigebaoer  
       2024-07-22 00:53:02 +08:00 via Android
    @bronyakaka 同意。Go 写 web 真的不够酸爽
    qping
        28
    qping  
       2024-07-22 01:46:13 +08:00 via Android
    @karottc 没用过 kotlin native ,为什么会不支持 mysql ,是 kotlin native 不能用 mysql 的 jdbc 驱动包了?
    Leviathann
        29
    Leviathann  
       2024-07-22 02:20:38 +08:00
    @qping kotlin native 是用 llvm 编译成机器码的,怎么支持运行在 jvm 上的 jar 文件
    qping
        30
    qping  
       2024-07-22 03:59:54 +08:00
    @Leviathann 了解了,看起来是只能用一些 kotlin 的标准库了,不过问 chatgpt 说是可以用 c/c++的 mysql 客户端
    BeiChuanAlex
        31
    BeiChuanAlex  
       2024-07-22 04:44:19 +08:00
    如果这么说,如果用 c 写,那么不是内存占用更少了
    SeaTac
        32
    SeaTac  
       2024-07-22 06:17:14 +08:00 via iPhone   ❤️ 25
    你站一天天的都是什么牛鬼蛇神
    irezpeng
        33
    irezpeng  
       2024-07-22 07:37:13 +08:00   ❤️ 2
    哈哈哈哈,语言无好坏,喜欢博主这种折腾的精神,无非就是多学一门语言而已,以前看左耳朵耗子博客,大佬也同时学了多门语言,还运用的不错 rust 就是跟着左耳朵耗子入坑的,个人主职也是 Java ,除了 Java ,我 vue3 、node 、typescript 、js 、html 、cs 、rust 、shell 、python 也是能通水平、同时我原型也画的还可以,工具只是实现目的的工具
    chendy
        34
    chendy  
       2024-07-22 07:58:49 +08:00   ❤️ 3
    连续剧是吧?楼主和 HotSpot 内存占用的爱恨情仇
    [Java 很强,但是 Java 的路还很长]( https://ex.noerr.eu.org/t/950472)
    [quarkus-graalvm 可以救 Java native 一命]( https://ex.noerr.eu.org/t/1057699)
    [果然吃内存,一个简单的 Java 程序就占用了 250M 内存]( https://ex.noerr.eu.org/t/1055770)

    可以理解楼主的心情,因为我年轻的时候也喜欢抠这些东西,什么内存占用什么 gc 时间什么线程池参数
    所以还是建议把精力用在更有深度的地方,别天天跟这些玩具较劲
    msg7086
        35
    msg7086  
       2024-07-22 08:20:39 +08:00
    等人长大了就知道,能早点下班,能多拿点钱,比什么都重要。
    要是 Java 能让我一年多拿十万块钱,别说 250M 内存了,250G 内存我都喂给你。
    dbpe
        36
    dbpe  
       2024-07-22 08:32:05 +08:00
    @chendy +1 现在写复杂业务..搞 java...简单就 GO,影音相关就 C/c++
    bhoppi
        37
    bhoppi  
       2024-07-22 08:32:47 +08:00 via Android
    每次见到这种讨论都会有很多人说 Spring 太重了云云。我没学过 Spring ,
    bhoppi
        38
    bhoppi  
       2024-07-22 08:34:39 +08:00 via Android
    我之前在别的语言用过不少很重的框架,基本上不用的模块是不会占用
    bhoppi
        39
    bhoppi  
       2024-07-22 08:44:03 +08:00
    抱歉,不经常在 V2EX 发言,感觉 V2EX 的移动网页版有问题,一不小心就把文字发出去了,而且我没找到删除和修改的地方,因此请忽略上两层的回复。
    我想表达的是,每次这种讨论都会有很多人说 Spring 太重了,我就有疑惑,我没用过 Spring 但也用过别的语言的比较重的框架,基本上不用的模块是不会占用内存的。难道 Spring 的设计是,不管你用不用里面的功能,只要引入了库,就会造成大量的基础开销么?
    flytsuki
        40
    flytsuki  
       2024-07-22 08:53:11 +08:00
    有空对比一下 dotnet aot 么。。
    skull
        41
    skull  
       2024-07-22 08:59:45 +08:00
    为老板省钱的其一方法就是优化掉自己
    Ayanokouji
        42
    Ayanokouji  
       2024-07-22 09:06:08 +08:00
    @bhoppi spring 采用单例模式,如果启用了(绝大数模块是引入即启用),就会自动创建模块所需的 bean
    Daniel17
        43
    Daniel17  
       2024-07-22 09:09:34 +08:00
    最近为啥这么多吐槽 Java 内存占用的,Java 内存占用多又不是现在才出现的
    suyuyu
        44
    suyuyu  
       2024-07-22 09:11:19 +08:00
    要不怎么会说 PHP 是世界上最好的语言 (
    sagaxu
        45
    sagaxu  
       2024-07-22 09:17:45 +08:00   ❤️ 6
    @bhoppi Spring 不重,Spring Boot 很重,启动时扫描每个包每个类,大量使用反射和字节码动态生成织入。在运行时,哪怕只处理一个最简单的 http 请求,它也引入了完整的 tomcat ,执行到你的方法的时候,调用链路深度已经好几十层了。如果访问 DB ,标准姿势是用 JPA ,那就引入 hibernate 那套大家伙了,从 HQL 编译到 SQL ,一级缓存默认开启,不都得消耗内存?更别说有的项目还开二级缓存和查询缓存。Spring 家族是 J2EE 的一个草根实现,各种组件都选取了很重很企业级的实现,默认开启的东西很多,用不到的功能,它也可能占用着内存。大量的类也会占用很多内存,哪怕只调用了一个方法,类加载器不也得把它载入内存么?
    wysnxzm
        46
    wysnxzm  
       2024-07-22 09:21:39 +08:00
    @Daniel17 #43 -Xmx 不知道是什么的大有人在,不要太高估平均水平啦
    nxcdJaNnmyF9O90X
        47
    nxcdJaNnmyF9O90X  
       2024-07-22 09:26:55 +08:00   ❤️ 1
    go 编译速度快 资源占用少 无虚拟机 这的确是当前云原生的优势,java 这几点没法比
    h9VZ3hilI68DVl36
        48
    h9VZ3hilI68DVl36  
       2024-07-22 09:27:58 +08:00
    @chendy +1
    tsvico
        49
    tsvico  
       2024-07-22 09:28:59 +08:00
    杀鸡用牛刀,你就别怪刀重。要不试试 php 或者 C
    yKXSkKoR8I1RcxaS
        50
    yKXSkKoR8I1RcxaS  
       2024-07-22 09:31:12 +08:00
    这功能,用 PHP 不好咩?
    brookegas
        51
    brookegas  
       2024-07-22 09:34:53 +08:00   ❤️ 2
    看到好多 Javaer 老气横秋教训 op 的,有点三季人的即视感。

    “PHP 是世界上最好的语言”,现在可以直接改为“Java 是世界上最好的语言”了。
    Java 过于简单,以至于吸引和堆积了大量的跨行业转码人士,他们是重要的屎山贡献者,也是最努力为 Java 辩护和战斗的群体;他们缺乏学习其他语言的能力和动力;由于低门槛易替代,他们也是 35 岁就能轻易被无情替换的螺丝钉。
    看到有人发帖说 Java 不好,第一个跳出来反击并对 op 冷嘲热讽的就是他们。

    “百万漕工衣食所系” “挡人财路犹如杀人父母”

    只能说,理解并祝福吧。。。
    listen2wind
        52
    listen2wind  
       2024-07-22 09:34:54 +08:00
    @Daniel17 这种让我想起来一个段子,一个人说我哥能吃一碗饭,另一个人说我哥能吃一盆饭,再另一个人说我哥能吃答辩
    murmur
        53
    murmur  
       2024-07-22 09:36:48 +08:00
    @xingjue 企业开发不需要云原生啊,单体应用配个好数据库服务器能扛起绝大多数中小企业应用
    neptuno
        54
    neptuno  
       2024-07-22 09:37:07 +08:00
    企业倒是不在乎内存,你这个属于个人需求,确实适合用 go 。我部署在 nas 的程序,都是 java ,不用在乎内存,熟悉的语言好维护,出了问题改的快。
    HaibaraDP
        55
    HaibaraDP  
       2024-07-22 09:38:37 +08:00
    技术选型绝了,hello world 写出花来
    PaulSamuelson
        56
    PaulSamuelson  
       2024-07-22 09:44:10 +08:00
    如果遇到一个 Eletron+Java 的桌面端项目,那估计能从 500MB 优化到 5MB 。
    wxw752
        57
    wxw752  
       2024-07-22 09:48:03 +08:00   ❤️ 5
    @brookegas #51 我日常项目 java 和 go 双修,偶尔写写 C#,前端也会,应该不算是单独哪一派,反驳一下你。

    你真的看懂上面老哥们说的是什么意思了吗,不是在说 Java 天下第一,而是都在指责 OP 一个很简单的需求用重量级框架,反过头来抱怨内存占用高。毕竟没有最好的工具,只有最适合的工具。

    如果你之前是看懂了还要引战,理解不了也祝福不了,如果理解能力捉鸡,那我祝福你
    xFrye
        58
    xFrye  
       2024-07-22 09:49:03 +08:00
    @chendy 我就说为啥最近老是有这种月经帖子出现,看了你这个才知道都是同一个人发的😂
    Richared
        59
    Richared  
       2024-07-22 09:49:06 +08:00
    怎么每天都有这样的帖子,上次就说了一句,有这个时间给 App 做好点,用户的内存和硬盘就不值钱了?一个 App 安装包动不动 500M 。安卓内存都普遍 16G 了。谁造成的?真有这工匠精神,国内安卓 App 也不能到这个程度。
    murmur
        60
    murmur  
       2024-07-22 09:54:39 +08:00
    @Richared 用户硬盘还真不值钱,256 起配,你说林檎用 c++省资源,聊天记录和图片视频不因为你是林檎系统就省资源啊
    brookegas
        61
    brookegas  
       2024-07-22 09:58:00 +08:00
    @wxw752

    理解并祝福。。。
    janda
        62
    janda  
       2024-07-22 09:59:55 +08:00
    没必要对比,不同需求选择不同方案,也取决于使用者所掌握的语言
    MrDarnell
        63
    MrDarnell  
       2024-07-22 10:02:54 +08:00   ❤️ 1
    @saranz 一个是占内存对比,一个是占磁盘对比,从成本上来说怎么个一样法?
    wxw752
        64
    wxw752  
       2024-07-22 10:05:42 +08:00
    @brookegas #61 看了一下你的历史记录,挺有意思的人。战斗力很强😁
    MrDarnell
        65
    MrDarnell  
       2024-07-22 10:07:17 +08:00
    @brookegas Java 过于简单-这句话不能苟同,不谈框架,从基础 sdk 使用上来说,别的语言一行可以搞定的事情,java 需要写 5 行,不要谈 spring-boot 带来的简化,只谈语言最基础的东西,php 的确是世界上最好的语言! java 不配!
    Richared
        66
    Richared  
       2024-07-22 10:13:30 +08:00
    @murmur 本来想和你解释下,但是我看我写的回答没啥问题,祝福你吧。没别的说的了。
    diagnostics
        67
    diagnostics  
       2024-07-22 10:14:13 +08:00
    理解并祝福。。。
    golang is welcome you
    dreamage
        68
    dreamage  
       2024-07-22 10:14:18 +08:00
    什么场景呀 是在抓利率吗
    DesnLee
        69
    DesnLee  
       2024-07-22 10:20:09 +08:00
    @murmur #60 我 64
    murmur
        70
    murmur  
       2024-07-22 10:27:32 +08:00
    @Richared 你难道不知道安卓成就成在 java 语言么,要不为啥安卓一开始能迅速构建生态,拉拢全世界开发者

    塞班失败有一部分原因就是他开发 c++,太 tm 难学了

    现在安卓已经成功了, 选 java 是历史原因改不了,那就升级内存和硬盘呗,反正这俩玩意真不值钱
    idblife
        71
    idblife  
       2024-07-22 10:27:37 +08:00
    @zzzmh
    一般来说 java 比 go 服务要多占用 1 倍以上的内存,如果你每年数据中心的成本是 5000 万左右,意味着能节省大概 2000 万成本,老板会怎么想呢?
    murmur
        72
    murmur  
       2024-07-22 10:29:49 +08:00
    @Richared 另外吹牛逼得调查了才有发言权,我没苹果手机,ipad 微信是 694m 初始安装包,安卓手机上 264 ,也不知道哪个平台缺少工匠精神
    murmur
        73
    murmur  
       2024-07-22 10:31:34 +08:00
    @idblife 如果你全是简单的 curd+缓存操作可以用 go ,如果是那种复杂 sql 带事务联表操作,用 go 没个顶级团队你做不起来
    ily433664
        74
    ily433664  
       2024-07-22 10:34:21 +08:00
    @idblife 数据中心成本≠内存成本,现在内存很便宜
    qxdo1234
        75
    qxdo1234  
       2024-07-22 10:36:45 +08:00
    @murmur 也可以啊,go 虽然框架和生态不太如 java 成熟,但是事务联表复杂 SQL 还是支持的。
    murmur
        76
    murmur  
       2024-07-22 10:38:10 +08:00
    @qxdo1234 支持和团队协作、好招人还是有区别的,java 的企业开发太成熟了,这种东西放哪里都是这么开发,人家不看文档凭以前经验就能上手项目

    所以 java 成就成在 spring+mybatis/hibernate 包打一切

    go 得看咱俩用的轮子是不是一套
    murmur
        77
    murmur  
       2024-07-22 10:39:07 +08:00
    国内还有个很重要的因素,java 是信创语言,go 我不知道是不是,java 有阿里的虚拟机这就是国产化
    XDiLa
        78
    XDiLa  
       2024-07-22 10:40:36 +08:00   ❤️ 1
    @boqiqita 看到这个真的绷不住了
    asuraa
        79
    asuraa  
       2024-07-22 10:43:26 +08:00
    为啥不试试 c# 不试试 asp.net core
    idblife
        80
    idblife  
       2024-07-22 10:50:09 +08:00
    @ily433664
    数据中心内存很便宜???
    你但凡有个云服务的帐号也不会这么说吧。。。
    idblife
        81
    idblife  
       2024-07-22 10:50:57 +08:00   ❤️ 1
    @murmur
    要是 go 连复杂 sql 带事务联表操作都需要顶级团队,那还能流行?
    说话之前请过过脑子。。。
    murmur
        82
    murmur  
       2024-07-22 10:54:40 +08:00
    @idblife 阿里京东没看谁切到 go 吧
    agdhole
        83
    agdhole  
       2024-07-22 10:55:11 +08:00
    asp 8 aot 做的网关,只要 45M
    storyxc
        84
    storyxc  
       2024-07-22 11:02:50 +08:00
    springboot 这种重量级框架内存占用高是事实,但你这个帖子喷歪了,主要是你的选型有问题。
    liuliuliuliu
        85
    liuliuliuliu  
       2024-07-22 11:14:26 +08:00
    要不试试最新的 .net? aot 之后内存也就 15m 左右吧
    liangch
        86
    liangch  
       2024-07-22 11:15:22 +08:00
    还 14 年的 ID 。
    Richared
        87
    Richared  
       2024-07-22 11:18:28 +08:00
    @murmur 我没有吹牛逼,我只说了个事实,首先我知道你义愤填膺,但是请你好好看看我说了啥,你看看你自己说了啥。不会再回你了,很无聊。
    egfegdfr
        88
    egfegdfr  
       2024-07-22 11:19:57 +08:00
    开发语言之间的比较,不是这么比较的, 你用一个省内存的语言来和一个耗内存高的语言来做比较, 相当于用跑车和五菱宏光比拉货能力。这个不应该是这么比的。
    下面的连接是一个比较常用的 27 个语言在耗电、运行时长、运行内存的一个比较的论文的总结, 感兴趣的可以了解下。
    https://www.51cto.com/article/629946.html
    egfegdfr
        89
    egfegdfr  
       2024-07-22 11:21:18 +08:00
    @egfegdfr 没有最好的工具,只有最合适的工具
    aino
        90
    aino  
       2024-07-22 11:34:43 +08:00
    梦回 2000 年
    abcbuzhiming
        91
    abcbuzhiming  
       2024-07-22 11:36:26 +08:00
    @idblife 没必要和那些人争,前几年互联网繁荣期,有两拨人吃到了时代红利所以一直忘乎所以,其中一派就是你现在看到的,觉得数据中心的内存很便宜。最狂的时候,我在这里见过人说什么“你连这点内存都买不起来做什么互联网”?还有一拨就是那帮 Electron 。前面那帮人是不把服务器内存当钱,Electron 这帮人则是认为用户电脑的内存不值钱。
    murmur
        92
    murmur  
       2024-07-22 11:40:56 +08:00
    @abcbuzhiming electron 是跨平台的主流选择,满足一次开发 5 端( win+mac+linux+信创+阉割后上 web 服务)使用(除了 native 部分),界面开发简单炫酷,而且相比各种奇葩的框架,浏览器是最稳定、成熟,支持界面特性也是最多的,你不知道浏览器为了流畅背后做了什么优化动作

    比起用户的流畅性,你是老板,你是要便宜的程序员,炫酷的界面,还是为用户省内存?
    murmur
        93
    murmur  
       2024-07-22 11:43:48 +08:00
    服务器还有吹逼的余地,毕竟定制硬件,不需要移植,electron 用 h5 开发,单一个可以提供在线服务直接秒了好吧

    我连 app 都不需要装,直接浏览器运行,下载 app 有更多特性,在线快速体验,这是爆杀
    FishBear
        94
    FishBear  
       2024-07-22 11:45:04 +08:00
    用 nodejs 实现的话 内存会稍微多一点 但是爽多了
    Chinsung
        95
    Chinsung  
       2024-07-22 11:47:03 +08:00   ❤️ 5
    [果然吃内存,一个简单的 Java 程序就占用了 250M 内存]( https://ex.noerr.eu.org/t/1055770#reply125)
    你是不是🤡啊,隔三差五就要发一个这样的话题来哗众取宠,然后还隐藏自己的提问记录。
    把这当贴吧呢
    keppelfei
        96
    keppelfei  
       2024-07-22 11:51:10 +08:00
    无论你怎么吐槽,嘿,java 市场占有率就是比 GO 要强。
    kyuuseiryuu
        97
    kyuuseiryuu  
       2024-07-22 11:51:12 +08:00
    如果你只关注性能,那么这个项目根本就不适合用 Java 。
    abcbuzhiming
        98
    abcbuzhiming  
       2024-07-22 11:53:01 +08:00   ❤️ 2
    @murmur 在经济好的时代,你但凡生产出来的东西都卖的出去,自然可以说出:“比起用户的流畅性,你是老板,你是要便宜的程序员,炫酷的界面,还是为用户省内存”。

    可现在这个时代不再有了,现在是生产过剩的时代。生产过剩的时代,就是你不卷,有的是人卷,你不愿意为用户省内存,会有人愿意为用户省。汽车行业就是如此。

    可以无视用户的想法节约企业成本的套路,仅限于经济高速发展,企业不愁客户的时代,别说 electron 这种恶心用户的东西,淘宝当年恨不得把网页端给砍了,像咸鱼一样彻底用 app ,当时淘宝的前端甚至在各大社区狂言:PC 端用户要对自己的处境有清醒的认知,你们就是一小撮,不值得为了你们去优化用户体验,识相点赶紧往 App 转,移动端才是未来巴拉巴拉。。。结果今年阿里破天荒的跑回来升级自己的 web 端网页。

    吃到了时代红利是好事,但是不自知就很成问题了。你可以给用户喂翔,用户有时候也没办法。但是有些人如上面那些,喂用户翔还要硬按着用户的头说翔是香的,真太过分了
    jinjiang2024
        99
    jinjiang2024  
       2024-07-22 11:53:55 +08:00
    要论写起来快,我会用( python 、php )
    javak
        100
    javak  
       2024-07-22 12:11:31 +08:00 via iPhone
    op 只是分享了下自己的人研究结果….. 各位温柔点
    1  2  
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   865 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 50ms · UTC 20:32 · PVG 04:32 · LAX 13:32 · JFK 16:32
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.