首页  

GO为什么没有虚拟机     所属分类 go 浏览量 914
虚拟机两个弊端
1 依赖虚拟机,安装时得先安装虚拟机,不利于软件分发
2 性能损耗,字节码到机器码转换有性能损耗,一般认为,go语言写的代码会比jvm语言运行效率更高

Golang作者说过,要把go打造成为一个更好的c语言,要极其简单,能够不加的特性绝对不加
极简原则,去掉一切繁杂冗余的设计,强调高效和简洁
譬如 不支持泛型

C C++和GO不在VM上执行,直接编译人类可读代码并将其转换为二进制文件

优化虚拟机要比优化编译器困难的多
当针对不同硬件架构的时候,困难度再次提升

go是个机器码语言,类比C/C++,只需要关心编译器就可以了,编译器兼容各种硬件要容易很多
go非常罕见的在机器码语言里引入了GC,当然这也是大势所趋
严格保护指针,抽象线程

虚拟机作为一个抽象层,隔离了硬件和OS,牺牲一些性能,实现难度也高

C开发太累,C++开发bug太难找
go不引入try catch,做增强的C语言,而不是增强C++
虚拟机语言,java已经够好了,没必要再重新发明一个

上一篇     下一篇
mysql 时间类型

Java为什么不能在构造函数中启动线程?如何终止一个线程?

ETF IOPV 实时净值参考

Rust语言设计理念及优缺点

mysql DATE_ADD 函数

C++ RAII 简介