跳至主要內容
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • 为什么需要编程语言虚拟机?
未分類
28 3 月 2020

为什么需要编程语言虚拟机?

为什么需要编程语言虚拟机?

資深大佬 : vevlins 56

  1. 仅仅是借助 c 编译器来实现多平台兼容吗?
  2. 通过虚拟机的方式和直接解释的有什么区别?不考虑可以先编译到 opcode
大佬有話說 (9)

  • 資深大佬 : johnsonshu

    一次编译 到处运行?

  • 資深大佬 : wysnylc

    因为要加快效率,不是执行效率是开发效率

  • 資深大佬 : tt67wq

    @johnsonshu 一次编译 到处调试

  • 資深大佬 : lyog

    因为加个虚拟机可以消除各个平台之间的差异化

  • 資深大佬 : 712e1959

    “通过虚拟机的方式和直接解释的有什么区别?”

    区别不就是你得先编译一下嘛……

  • 資深大佬 : hoyixi

    计算机技术世界,2 大“绝技”
    1 空间换时间
    2 加一“层”

  • 資深大佬 : charlie21

    一切 “为什么要有 xxx ” 那就是 去想 “没有 xxx ” 会怎样。

    哎呀妈呀

  • 資深大佬 : penguinWWY

    个人看法
    1、先说第二点,虚拟机和解释器没啥区别,硬要说不同,那就是针对 opcode 除了解释执行外还有 AOT 和 JIT,所以 vm 可以看做是针对 opcode 的 runtime ( AOT + JIT + Interpreter )的统称,也就是直接面对 opcode 的抽象概念。CPython 叫 Interpreter,如果它加了 Jit,或者本来就有 JIT 的 PyPy,把他们叫做 Python VM 也没啥毛病。
    2、除了统一平台,有了 VM 可以做跟多的事情,有些事情可以做的更好,当然也有些事情会更差。做的更好的事情最直观的就是可以带牛逼的 GC,除此之外还有 Virtual Inline,PGO,LTO,以及十分牛逼的 Partial Evaluation,这些 AOT 做起来很麻烦的事情,在有 VM 的情况下属于家常便饭,当然也有做的更烂的比如启动时间,比如要命的 Interproducer Analysis。这就看各种语言的取舍了

  • 資深大佬 : pythonee

    @hoyixi 其实主想说的可能是,解释器本身也已经加一层了

    @penguinWWY VM 就是个更大的解释器?

文章導覽

上一篇文章
下一篇文章

AD

其他操作

  • 登入
  • 訂閱網站內容的資訊提供
  • 訂閱留言的資訊提供
  • WordPress.org 台灣繁體中文

51la

4563博客

全新的繁體中文 WordPress 網站
返回頂端
本站採用 WordPress 建置 | 佈景主題採用 GretaThemes 所設計的 Memory
4563博客
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?
在這裡新增小工具