写点什么

Go 语言将使用 Go 代替 C 重写运行时环境

2014 年 9 月 03 日

Go 语言是 Google 开发的新型编程语言,它将动态语言易于编写的特性和静态语言的高效性集于一身,且具备良好的易用性和极佳的执行效率。从现在开始到 Go 1.4 版本发布前将只接受 Bug 修复和小范围的调整。Go 1.4 版本最主要的变化是使用 Go 代替 C 重写运行时。那么使用 Go 重写有什么益处吗?这是不言而喻的,重写后的运行时具有以下益处:

  • 使用 Go 来重写运行时,将会使得堆栈拷贝方法更加高效的执行,主要体现在如果调用堆栈中发现 C 代码,当需要增长堆栈时,就无需再退回到老的堆栈中了,从而提高了堆栈拷贝方法的性能
  • 可以做到降低运行时中 C 的代码行数,甚至可能完全清除

另外,请广大读者注意, 本次重写的是 Go 运行时中 C 语言实现的 C 编译器,也就是 gc,而不是 gccgo;gc 工具链里的 C 编译器与系统的 C 编译器不同,gc 工具链使用系统的 C 编译器进行编译,而 gc 运行时则使用自己的 C 编译器来编译;由于所有 G 栈相关的代码都要用 Go 重写,所以就会使得重写的代码行数相对原代码行数有所增加。


感谢郭蕾对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ )或者腾讯微博( @InfoQ )关注我们,并与我们的编辑和其他读者朋友交流。

2014 年 9 月 03 日 06:281461
用户头像

发布了 92 篇内容, 共 38.5 次阅读, 收获喜欢 1 次。

关注

评论

发布
暂无评论
发现更多内容

week 12 作业

Geek_2e7dd7

SpreadJS 纯前端表格控件应用案例:表格数据管理平台

Geek_Willie

图解Janusgraph系列-分布式id生成策略分析

洋仔聊编程

分布式 分布式系统 janusgraph 图数据库

数字人民币钱包短暂露面 金融诈骗伺机而起

CECBC区块链专委会

数字货币 钱包 货币

Jenkins持续集成「编译打包、代码检查、单元测试、环境部署、软件测试​」

清菡

jenkins

oeasy教您玩转linux-010110内容回顾

o

揭开链表的真面目

Java旅途

Java 数据结构 链表

文件系统

Linuxer

面试是一张窄窄的船票

escray

学习 面试 面试现场

产品经理的架构思维

吴世亮

架构 产品经理 电商

week 12 学习总结

Geek_2e7dd7

数字资产钱包开发,深圳区块链理财钱包服务商

13530558032

合约跟单软件开发,合约跟单交易所系统开发搭建

13530558032

Python 到底是强类型语言,还是弱类型语言?

Python猫

Java c++ Python 编程

Week12

一叶知秋

新时代背景下的Java语法特性

九叔

Java java 14 java 14 新特性 Java 分布式

java安全编码指南之:对象构建

程序那些事

Java 安全 安全编码指南 对象构建

USDT承兑商软件开发,区块链支付系统源码搭建

13530558032

DockerHub 镜像仓库的使用

哈喽沃德先生

Docker 容器 微服务 镜像 容器技术

管理时间还是挥霍时间?

钰湚

学习 时间管理 工作体会 工作哲学

在面试中成长

escray

学习 面试 面试现场

MySQL复杂where条件分析

程序员历小冰

MySQL

面试必备知识点:悲观锁和乐观锁的那些事儿

鄙人薛某

面试 乐观锁 悲观锁 CAS 并发控制

你也许还不懂静态方法和实例方法

架构师修行之路

Golang写算法

卒迹

golang 算法

拖延症竟然是自己给自己的一种奖励?如何干掉它?

非著名程序员

个人成长 拖延症 番茄土豆工作法

性能相关 磁盘I/O子系统

Linuxer

数字货币交易平台搭建,去中心化交易所开发方案

13530558032

Keepass+Synology 打造私人密码管理器

zj坚果

甲方日常4

句子

工作 随笔杂谈 日常

自己做的 PPT 总被批「缺少干货」?试试先回答这三个问题

Tony Wu

效率工具 方法论 PPT

演讲经验交流会|ArchSummit 上海站

演讲经验交流会|ArchSummit 上海站

Go语言将使用Go代替C重写运行时环境-InfoQ