为啥这么吃内存
第一次在Linux下见到如此高内存的需求
编译和链接 OpenJDK 核心库时,会占用很多内存,大约需要16GB多一点。加上系统其它进程及文件系统缓存占用的部分,建议用24GB内存服务器。
若您的服务器只有16GB内存,可以创建8GB或以上的swap空间,运行时间要长一些。
OpenJDK-8 核心库的Java源程序行数是百万数量级的,Maple编译器将其链接为一个.so共享库,方便大家使用。编译和链接一个的应用程序,所需内存取决于这个应用程序的大小,一般不会用这么多内存。
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。
一开始我以为是中文文档翻译错了,把ROM翻译成RAM,看了下英文文档真的是RAM
一开始我以为是中文文档翻译错了,把ROM翻译成RAM,看了下英文文档真的是RAM
@晓得咯 多谢!翻译得很好。“build”翻译成构建我也是刚学的
编译和链接 OpenJDK 核心库时,会占用很多内存,大约需要16GB多一点。加上系统其它进程及文件系统缓存占用的部分,建议用24GB内存服务器。
若您的服务器只有16GB内存,可以创建8GB或以上的swap空间,运行时间要长一些。
OpenJDK-8 核心库的Java源程序行数是百万数量级的,Maple编译器将其链接为一个.so共享库,方便大家使用。编译和链接一个的应用程序,所需内存取决于这个应用程序的大小,一般不会用这么多内存。
对于更少内存的服务器,可以考虑在其它内存较多的服务器上先构建好libcore.so, 将maple_engine/maple_build/out/这个目录打包传到您的本地机器,展开后放到本地机器同名目录下,再拷贝其中的文件libcore.so 到maple_engine/maple_runtime/lib/x86_64/libcore.so,就可以本地编译和运行应用程序了。
服务器的内存需求已更新为最少16GB,参见链接。
@晓得咯 多谢!翻译得很好。“build”翻译成构建我也是刚学的
@Maple_YZhang 很惭愧,做了一些微小的工作,只能抛个砖引些玉了
能优化下编译java代码时的内存占用么, 现在编译hello world要4G内存才能编译成功。
能优化下编译java代码时的内存占用么, 现在编译hello world要4G内存才能编译成功。
@东方星痕 抓了编译HelloWorld时的RSS内存占用,峰值达到了约1.69GB。载入全部核心库符号导致内存占用过多,值得优化,尤其在编译较小的应用程序时。
@Maple_YZhang @wconly
编译过程, 这是云服务器,其他人的云服务器也是这样。
精简过程见dockerfile: https://ystyle.top/2020/07/21/dokcer-compile-maple-engine/
@Maple_YZhang @wconly
编译过程, 这是云服务器,其他人的云服务器也是这样。
@东方星痕
好的,刚才也看到了上面社区的回复~
@东方星痕
好的,刚才也看到了上面社区的回复~
@wconly @东方星痕 创建了一个虚拟机,安装了Ubuntu 16.04(服务器版 https://releases.ubuntu.com/16.04/ubuntu-16.04.6-server-amd64.iso ),测量了能够成功编译HelloWorld的最小内存使用情况,结果如下:
从上图可以看到,系统占用内存约有43MB,总内存为1799MB,swap空间设置为0,编译和运行HelloWorld成功。供参考。
@Maple_YZhang @东方星痕
冒昧的问一句,二位的观察方法是不是有点儿问题?
我看二位都是在编译后才执行的free,这时得到的貌似是编译后的内存使用情况吧?
我又细看了一下,在编译过程中,从宿主机的管理器去看,内存占用不大,反而硬盘100%,从虚拟机的角度去看,就是编译期间卡住,编译后才能动惹……
@Maple_YZhang @东方星痕
冒昧的问一句,二位的观察方法是不是有点儿问题?
我看二位都是在编译后才执行的free,这时得到的貌似是编译后的内存使用情况吧?
我又细看了一下,在编译过程中,从宿主机的管理器去看,内存占用不大,反而硬盘100%,从虚拟机的角度去看,就是编译期间卡住,编译后才能动惹……
@wconly 执行后free只是看内存大小,有没有swap, 和主机本身的内存占用。。。
编译进程占用我是通过htop看到的,虽然没截图。。。。
有几个朋友也是用的云机器,内存都2G以下编译不出来, 所以来问问。。。
@Maple_YZhang @东方星痕
好的,打扰二位惹。这样算内存差的还不是太多,应急的话临时用硬盘当内存应该就可以了吧……
登录 后才可以发表评论