1
johnsonshu 2020-01-19 15:28:16 +08:00 via iPhone
一次编译 到处运行?
|
2
wysnylc 2020-01-19 15:36:58 +08:00
因为要加快效率,不是执行效率是开发效率
|
3
tt67wq 2020-01-19 16:08:03 +08:00
@johnsonshu 一次编译 到处调试
|
4
lyog 2020-01-19 16:38:01 +08:00 via iPhone 1
因为加个虚拟机可以消除各个平台之间的差异化
|
5
712e1959 2020-01-19 17:15:13 +08:00 via Android
“通过虚拟机的方式和直接解释的有什么区别?”
区别不就是你得先编译一下嘛…… |
6
hoyixi 2020-01-19 17:17:02 +08:00 1
计算机技术世界,2 大“绝技”
1 空间换时间 2 加一“层” |
7
charlie21 2020-01-19 17:17:49 +08:00
一切 “为什么要有 xxx ” 那就是 去想 “没有 xxx ” 会怎样。
哎呀妈呀 |
8
penguinWWY 2020-01-20 03:15:07 +08:00 1
个人看法
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。这就看各种语言的取舍了 |
9
pythonee 2020-01-20 10:43:17 +08:00
|