查看: 2402| 回复: 2
跳转到指定楼层
上一主题 下一主题
收起左侧

GraavlVM 圣杯虚拟机雄心勃勃要一统江湖啦?

全局:

注册一亩三分地论坛,查看更多干货!

您需要 登录 才可以下载或查看附件。没有帐号?注册账号

x
Graalvm 是去年Oracle公开源码的一个虚拟机项目。其优点有:

  • 融合多种语言的运行。而且是Zero overhead interoperability。多种语言包括Java, JavaScript, Ruby, R, Python, Native libraries(C或C++编译)可以转化成能在包括JVM,Node, Oracle, MySQL(对,在数据库平台通过Graal虚拟机)等平台上尤其是转化成native executable,直接就可以在操作系统平台上运行。这样多种语言的边界就变得非常模糊了。融合听上去非常有潜力。
  • 速度更快(hhh。。。)





目前仍然在RC状态,还有很多问题未解决:
https://github.com/oracle/graal/ ... tevm/LIMITATIONS.md







貌似R和Ruby这样的语言要受益很多。

关于速度,我做了个测试,一个N!的DFS程序,JRE运行35秒,一次性转化成native executable后这个executable的运行反而要150秒。


  1. /tmp/graalvm $ ls -l
  2. total 12
  3. -rw-r--r-- 1 test test 5452 Mar 21 22:39 ValidSequence.java
  4. -rw-r--r-- 1 test test 26 Mar 21 22:39 input.txt

  5. /tmp/graalvm $ javac ValidSequence.java

  6. /tmp/graalvm $ native-image ValidSequence # 一次性把java class转化为native的executable
  7. Build on Server(pid: 435, port: 43491)*
  8. [validsequence:435] classlist: 6,035.28 ms
  9. [validsequence:435] (cap): 3,573.66 ms
  10. [validsequence:435] setup: 6,825.29 ms
  11. [validsequence:435] (typeflow): 6,562.13 ms
  12. [validsequence:435] (objects): 1,455.95 ms
  13. [validsequence:435] (features): 289.98 ms
  14. [validsequence:435] analysis: 8,481.65 ms
  15. [validsequence:435] universe: 328.38 ms
  16. [validsequence:435] (parse): 1,871.64 ms
  17. [validsequence:435] (inline): 1,606.91 ms
  18. [validsequence:435] (compile): 14,541.84 ms
  19. [validsequence:435] compile: 18,407.56 ms
  20. [validsequence:435] image: 651.13 ms
  21. [validsequence:435] write: 540.47 ms
  22. [validsequence:435] [total]: 41,841.11 ms

  23. /tmp/graalvm $ ls -l
  24. total 2512
  25. -rw-rw-r-- 1 test test 5889 Mar 21 22:39 ValidSequence.class
  26. -rw-r--r-- 1 test test 5452 Mar 21 22:39 ValidSequence.java
  27. -rw-r--r-- 1 test test 26 Mar 21 22:39 input.txt
  28. -rwxrwxr-x 1 test test 2549792 Mar 21 22:40 validsequence # 这是native的executable, disk footprint倒是变小了。

  29. /tmp/graalvm $ time java -cp . ValidSequence
  30. aaaaaaaaaaaa bcdefghijklm
  31. 479001600

  32. real        0m34.981s
  33. user        0m37.760s
  34. sys        0m2.850s

  35. /tmp/graalvm $ time ./validsequence
  36. aaaaaaaaaaaa bcdefghijklm
  37. 479001600

  38. real        2m27.306s
  39. user        2m26.550s
  40. sys        0m0.400s
复制代码




上一篇:如何便宜的搞定Safari Books Online账号
下一篇:javascript的unit test问题
🔗
zasdfgbnm 2019-3-22 09:34:59 | 只看该作者
全局:
谢谢楼主的分享。
回复

使用道具 举报

🔗
 楼主| 14417335 2019-6-10 21:23:28 | 只看该作者
全局:
On May 9, 2019, developer at Oracle Labs Oleg Šelajev announced GraalVM 19.0. His announcement states: “While we previously only published “release candidates”, we believe that GraalVM finally is mature and ready for production use.”

This version will be the current stable release.; the GraalVM team heavily recommends using v19.0 in production.
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册账号
隐私提醒:
  • ☑ 禁止发布广告,拉群,贴个人联系方式:找人请去🔗同学同事飞友,拉群请去🔗拉群结伴,广告请去🔗跳蚤市场,和 🔗租房广告|找室友
  • ☑ 论坛内容在发帖 30 分钟内可以编辑,过后则不能删帖。为防止被骚扰甚至人肉,不要公开留微信等联系方式,如有需求请以论坛私信方式发送。
  • ☑ 干货版块可免费使用 🔗超级匿名:面经(美国面经、中国面经、数科面经、PM面经),抖包袱(美国、中国)和录取汇报、定位选校版
  • ☑ 查阅全站 🔗各种匿名方法

本版积分规则

>
快速回复 返回顶部 返回列表