主机参考:VPS测评参考推荐/专注分享VPS服务器优惠信息!若您是商家可以在本站进行投稿,查看详情!此外我们还提供软文收录、PayPal代付、广告赞助等服务,查看详情! |
我们发布的部分优惠活动文章可能存在时效性,购买时建议在本站搜索商家名称可查看相关文章充分了解该商家!若非中文页面可使用Edge浏览器同步翻译!PayPal代付/收录合作 |
ThinkStu网友说:
OP去年开始关注GraalVM的开发,前天开始想把我写的一些小应用变成可执行的二进制文件,当然是因为服务器的内存不够。据实测,普通的SpringBoot程序在MacOS系统上占用内存200MB左右,转换成可执行文件后占用30MB左右。现在最大的问题是GraalVM+image-native不支持跨端编译!就是在Mac系统上编译的程序不能直接在Linux上运行。Op曾经考虑过把代码转移到Linux服务器上进行编译。结果由于很多依赖问题,它一直报错,两三天也想不出好方法。
Akitora用户回复道:
https://github.com/oracle/graal/issues/407
Oldshensheep用户回复:
用GitHub动作编译。我的简单Web程序是用GitHub action编译的,大家可以参考一下。编译了三端Linux,Mac,Windows,https://github.com/oldshensheep/place还是贴了bug,不知道依赖问题是什么。
Ljhrot用户回复:
Graalvm编译占用内存太大,而且不支持交叉编译,所以我把Linux安装在冗余硬盘上进行编译,相当于匹配了一套与部署环境一致的机器来编译Linux和安装graalvm。你应该没事的。就把错误信息发出来给大家看看,之前想尝试一个新项目,结果第三方依赖静态资源太多,就放弃了,感觉生态还有很长的路要走。
Gakaki网友回复:
Https://github.com/gakaki/spring_template,我写了一个也是github action的。
Gakaki网友回复:
基于docker编译。注意编译一次需要3到5分钟。github action需要自己的机器。你做梦去吧。这个问题最麻烦的就是se运维。遇到麻烦的se可能会给你回电话,不让你用。还必须使用jdk17或以上。
ThinkStu用户回复:
@ oldensheep @ ljhrot当前的错误消息是这样的:Linux虚拟机上的GraalVM环境有问题,参见:
Julyclyde网友回复:
是否/root/。jdks/graalvm-Ce-17/bin/Java文件存在吗?它能跑吗?
Oldshensheep用户回复:
Maven添加了一个-X参数,并查看完整的调试日志记录。
ThinkStu用户回复:
@ oldensheep # 8以下是打印结果:
ThinkStu用户回复:
@julyclyde #7这个命令也完全没问题。
ThinkStu用户回复:
源代码其实是一个小测试用例,已经上传到GitHub:https://github.com/Bistutu/hello_graalvm.
Swhhaa网友回复:
GraalVM可以自己玩。不知道是不是用在生产环境。...
Lff0305用户回复:
尝试在graal home的bin中运行它。/gu列表查看是否安装了本机映像。
ThinkStu用户回复:
@lff0305 #13装了,问题还是一样。
Oldshensheep用户回复:
我用Linux编译了你的代码,可以正常编译运行(ARM,Ubuntu)。你试过以下方法吗,谷歌的CHMOD+X $ Java _ home/lib/jspawnhelper?
Ljhrot用户回复:
Https://imgur.com/a/I6idY2W,你的项目可以正常编译。你的环境可以用native -镜像编译一个Hello World吗?
ThinkStu用户回复:
@ oldensheep # 15我换了arm架构的虚拟机,编译正常,但是为什么Intel还是没有成功?暂时不知道为什么。
ThinkStu用户回复:
@ljhrot #16我想问一下,你这个机器是arm的还是intel的?
Ljhrot用户回复:
@ThinkStu #18 amdx64 [DOGE]
ThinkStu用户回复:
谢谢大家的帮助!本帖结束
ThinkStu用户回复:
我只是在不同的情况下用了三个虚拟机,编译结果如下(原生MacOS系统,M1 pro芯片):1。orbStack模拟arm虚拟机:编译通过,可执行文件正常生成。2.orbStack模拟Intel虚拟机:编译失败,报告未知错误。3.阿里云Intel服务器:正常编译生成可执行文件。
Gakaki网友回复:
其实最后还是会用ci系统编译,也就是docker编译和arm自己本地的。
一位女性用户回答道:
跳羚也会降低记忆力吗?奇迹
Wdwwtzy用户回复:
否则,请考虑切换到。网?
ThinkStu用户回复:
@awolf原来编译的是jar包,现在编译成可执行文件,不需要JVM的参与,内存利用率自然下降(虽然编译出来的程序性能也会下降一点)。
ThinkStu用户回复:
@wdwwtzy哈哈,不过Java开发者可能会选择转行先走。
Flyqie用户回复:
@ThinkStu #26应该不会优先去。java和go在很多方面都有不同的思路。。似乎更容易切入。网。
Cheng6563用户回复道:
使用openj9 jvm
Yazinnnn网友回复:
Aot也需要jvm。
Huelse用户回复道:
静态图像至今没有编译成功,有些解决方案很难发现隐藏在他们的问题。
ThinkStu用户回复:
@Huelse写了一篇博客《GraalVM编译SpringBoot程序》,希望能帮到你~:https://blog.csdn.net/QQ _ 35760825/article/details/130459747?spm=1001.2014.3001.5501
ThinkStu用户回复:
@cheng6563谢谢兄弟,我也试过。openj9平均减少运行内存20% ~ 50%。对于个人开发者来说,确实是一个不错的解决方案。
这几篇文章你可能也喜欢:
- 暂无相关推荐文章
本文由主机参考刊发,转载请注明:有人用GraalVM编译过SpringBoot程序吗? https://zhujicankao.com/93034.html
评论前必须登录!
注册