成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

聽說 TypeScript7.0 要用 Go 寫?

開發 前端
TypeScript7.0 編譯器和工具的原生移植至用 Go 編寫,以此實現大幅改善編輯器啟動,將大多數構建時間縮短 10 倍,并大幅減少內存使用量的目的。

大家好,我是煎魚。

前段時間社區里掀起了一波大熱潮,甚至在電梯間都偶有同事拍一拍我,說到聽說 TypeScript7.0 要用 Go 重寫了,真牛逼。你知道嗎?

實則上是:TypeScript7.0 編譯器和工具的原生移植至用 Go 編寫,以此實現大幅改善編輯器啟動,將大多數構建時間縮短 10 倍,并大幅減少內存使用量的目的。

圖片圖片

消息本身是由 @Anders Hejlsberg 在A 10x Faster TypeScript[1]中放出來的消息,其頭銜是:微軟技術研究員,TypeScript 首席架構師。C#、Delphi 和 Turbo Pascal 的原創設計者。

TS 選型核心依據

在 microsoft/typescript-go[2] 項目中,官方發起了 《Why Go?[3]》。可以詳細的看到選擇的緣由:

圖片圖片

以下為原文的部分總結。選取了一些我認為比較有用的。

部分選擇依據

1、代碼兼容性

  • Go 的代碼模式與現有 TypeScript 代碼庫的編碼范式(內存管理、數據突變、多態實現等)高度契合。
  • 規避完全重構風險,采用漸進式移植策略保留已有行為特征與關鍵優化。

2、內存管理架構

  • 精細化內存控制:
  • 支持對象級/字段級內存布局定制,無需全局關注內存管理細節。
  • ST 等長生命周期對象管理更方便。
  • GC 性能平衡策略:
  • 批量編譯場景可完全規避 GC(進程結束后自動釋放)。
  • 非批量場景通過預分配+邏輯 GC 觸發點設計,將 GC 影響降至毫秒級。
  • 對比其他語言方案,代碼復雜度降低 30%+ 的同時保持同等運行時效率。

3、工程實踐

  • 代碼可移植性:基于 Go 與 TS 的結構相似性,實現核心算法跨語言變更同步率 85%+
  • 編譯工具鏈支持:Go 原生支持交叉編譯,單二進制部署簡化工具鏈復雜度
  • 并發模型適配:Goroutine 機制為未來分布式編譯預留架構擴展空間

性能提升情況

TS 官方的本機實現已經能夠加載許多流行的 TypeScript 項目,包括 TypeScript 編譯器本身。

下面是在 GitHub 上不同大小的一些流行代碼庫上運行 tsc 的時間:

圖片圖片

簡單來講:大幅提速,官方很興奮。摩拳擦掌中。

Go 社區的快速響應

這次 TS 的大動作和在微軟博客上宣發,在國內外都引發了一波熱潮。

在 Go 社區中也有同學迅速展開了行動,@Jorropo 光速提交了一版逃逸分析的優化反饋和 issues[4]:

圖片圖片

@Jorropo 在嘗試新的 TypeScript 編譯器時,發現性能有問題。花費了 70s:

________________________________________________________
Executed in   70.51 secs    fish           external
   usr time  159.17 secs  543.00 micros  159.17 secs
   sys time    5.49 secs  249.00 micros    5.49 secs

基于其對自身機器的配置了解,160 ÷ 70 ≈ 2.3 計算得知多核利用率較低。

為此通過研究,得知最大的異常耗時在于:github.com/microsoft/typescript-go/internal/checker:

github.com/microsoft/typescript-go/internal/checker

________________________________________________________
Executed in   44.97 secs    fish           external
   usr time   50.51 secs  413.00 micros   50.51 secs
   sys time    0.32 secs  142.00 micros    0.32 secs

隨后,@thepudds(主要負責 Go 內的性能、模糊測試和 Go Module 等)光速提交了多個 CL 進行優化,提高了至少 5 倍的性能:

escape analysis    total package compile time

go1.24.1           47.109 sec         50.60 sec
cl-657179-ps3       8.095 sec         11.57 sec
parallel-wip        2.844 sec          6.28 sec

第一行是 Go 1.24,第二行時合了優化 CL 后的。第三個是 WIP 并行版本(也就是正在發布上線后的實際性能提高可能會更好)。

總結

這次對于 TypeScript 編譯器和工具原生移植用 Go 來寫,對于 Go 這一門編程語言來講,是非常不錯的。生態圈多了一名大將。也意味著用戶群體受益的更多。

結合 Go 社區的反響來看,優化還是非常及時的,態度上也是比較積極支持。

較為尷尬的是,在微軟宣發的博客內,一滑動評論區,一眼看到一個太刺激的評論:

圖片圖片

參考資料

[1]A 10x Faster TypeScript: https://devblogs.microsoft.com/typescript/typescript-native-port/

[2]microsoft/typescript-go: https://github.com/microsoft/typescript-go

[3]Why Go?: https://github.com/microsoft/typescript-go/discussions/411

[4]issues: https://github.com/golang/go/issues/72815

責任編輯:武曉燕 來源: 腦子進煎魚了
相關推薦

2017-01-16 13:26:39

2017寫前端

2020-04-07 16:12:56

Go編程語言開發

2016-01-12 16:58:31

C游戲

2021-10-18 21:41:10

Go程序員 Defer

2021-02-09 20:51:13

D 語言腳本編程語言

2018-10-11 10:41:12

Go 開發技術

2020-12-15 16:44:48

代碼程序運行

2018-09-28 07:00:03

編程語言Go語言

2020-08-27 14:05:32

TypeScript配置文件前端

2020-09-11 06:46:00

TypeScriptJavaScala

2023-02-15 08:17:20

VSCodeTypeScrip

2023-04-26 08:43:28

GoCGO語言

2021-02-20 23:33:34

TypeScript代碼開發

2020-03-06 10:25:10

注解Java代碼

2021-08-13 11:45:00

Go語言字節

2023-09-07 07:53:21

JavaScriptGoRust

2012-03-20 09:20:40

Go語言

2023-02-03 16:03:17

TypescriptJavaScript

2018-05-15 11:14:07

面試官C++編程

2024-02-29 08:01:42

分布式IM系統
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 久久精品视频网站 | 欧洲亚洲视频 | 欧美精品一区在线发布 | 国产精品免费在线 | 日本天堂视频在线观看 | 99re热这里只有精品视频 | 成人精品一区二区 | 欧美日韩精品国产 | 欧美寡妇偷汉性猛交 | 中文字幕在线播放第一页 | 羞羞的视频免费在线观看 | 黄色免费av | 在线视频91 | 国产精品久久久亚洲 | 欧美午夜视频 | av在线免费观看网站 | 黄色一级毛片免费看 | 国产在线一区二区三区 | 成人一级黄色毛片 | 视频一区二区国产 | av中文字幕在线播放 | 在线免费观看a级片 | 亚洲午夜视频 | 91在线电影| 国精日本亚洲欧州国产中文久久 | 欧美 日韩 国产 一区 | 久久久91| 久久久久成人精品免费播放动漫 | 99久久精品国产一区二区三区 | 午夜影院中文字幕 | 国产欧美精品在线观看 | 91久久精品一区二区二区 | 久久69精品久久久久久久电影好 | 亚洲日本一区二区 | 亚洲成人一区 | 午夜精品一区二区三区在线观看 | 国产精品一区二区三区在线 | 精品国产欧美日韩不卡在线观看 | 精品久久中文字幕 | 99久久精品免费视频 | 亚洲一区二区三区在线 |