#3: 为什么VSCode这么快

2019/11/25 02:34

为什么VSCode这么快

VSCode的性能非常好,让人感觉不到它是一个Electron应用。那么它为什么这么快,背后的实现原理是怎样的?

Visual Studio Code有哪些工程方面的亮点

这篇文章提到了VSCode将UI渲染与业务逻辑隔离,其中最重要的就是两大协议:Language Server ProtocolDebug Adapter Protocol

VS Code 是如何解决能耗和内存问题的?

针对文本的编辑,vscode 重写了 Text Buffer 的实现,数据结构选择了 Piece table。
对应的PR 。类似的Atom也使用C++实现了类似Piece Table的数据结构 (Atom's new concurrency-friendly buffer implementation)

其它值得一看的编辑器相关项目:

Xray

Atom团队基于Electron的新一代的编辑器。核心部分使用Rust开发,但现在已经不再更新了。

Xi-Editor :

使用Rust编写的编辑器后端。基于此后端已经有很多不同平台使用各种技术栈开发的前端了。类似的,Neovim 也是专注于后端与命令行端,现在已经有几十个前端实现。

值得读

Build Your Own React

一步步的实现一个自己的React。基于React16.8,所以其中包含Concurrent Mode、Fibers、Reconciliation、Hooks等的实现。

High Performance Go Workshop

作者是Go的维护者之一。这篇文章主要讲如何写Benchmark,Profile,编译器的优化,垃圾回收,以及一些性能优化的小机器。

Practical Go: Real world advice for writing maintainable Go programs

和上篇文章是同一个作者。一系列的文章介绍如何编写可维护的Go代码,包括包的设计,项目设计,API设计,错误处理,日志,并发,测试等等方面。

新项目

RedisInsight: The Redis GUI You’ve Been Looking For?

Redis Labs 发布了RedisInsight,基于之前收购的RDBTools开发,完全免费。可以浏览与操作Redis中的数据,在线或者离线进行完整的内存分析,集群管理、慢日志查看等等。

LocalStack

💻 A fully functional local AWS cloud stack. Develop and test your cloud & Serverless apps offline!

Ristretto

Ristretto is a fast, concurrent cache library built with a focus on performance and correctness.