关于 Java 的高内存占用

查看 209|回复 11
作者:mokevip   
作为一个前端,写过 php 、python 、node 的服务端,对 JAVA 不太了解
可能是因为解释型和编译型的问题,感觉 JAVA 的内存占用很高
最直观的感觉就是,java 后端朋友总是找老板审批,要加内存、加服务器
甚至连测试服务器(几乎没用户访问),32G 内存都不够用,还要加(解释是里面放的基础服务多)
再有一个比方,gitea 在我的 NAS 上以 Docker 的形式也只占用 100M ,而 gitlab 没有 2G 都安装不上(我之前 NAS 只有 4G 内存的时候安装过,系统经常卡死)
但是我接触 PHP 比较多,PHP 就是属于没有用户访问的情况下,十几个站点和一个站点性能开销基本一样
一个 2h2g 的服务器就够 PHP/Node 玩出各种花样来了

PHP, Java, 内存, NAS

Leviathann   
jvm 不改启动参数默认最小占用 800m
msg7086   
Java 就是设计给大内存用户跑的,内存是它自己管理的。
用 Java 就代表你接受它的内存占用习惯。(否则你用它干什么?)
就像你跑数据库,有些人开着 1TB 内存跑 Oracle DB ,有些人开个 1GB 内存跑 SQLite ,这能一样吗。
我们做 Java 开发的,我司给的沙盒服务器最小是 24G 内存。生产服务器会再给多一些。
另外解释型和编译型和这没关系。内存占用是内存管理策略下的东西。
Akitora   
32G 都不够那肯定是一堆微服务,用 graalVM 编译成 native 能节省很多内存
mokevip
OP
  
@Akitora 是有一堆微服务
hhjswf   
@Leviathann 跟主机内存有关系吧,我记得最小 1/64 ,最大 1/4
perfectlife   
编程语言的问题,java 天生内存就高一点,另外对公司来讲 服务器配置成本比起人力成本基本,孰高孰低,很明显的。
hhjswf   
jvm 划了很大一块内存空间 jvm 自己管理,降低程序员心智负担,所以占用大。不懂 node ,php 是不是程序员自己做内存管理
IvanLi127   
这就是为啥我看见 java 的项目就直接叉掉的原因了,小破机子带不动带不动
mokevip
OP
  
@IvanLi127 +1 , 所以一般开源项目还是 php 、node 之类的比较简单、高效(迭代快)
您需要登录后才可以回帖 登录 | 立即注册

返回顶部