atom編輯器運行起來為什麼這麼慢?

用了github發布的atom編輯器,很喜歡這樣的,但是使用後發現啟動很慢,運行中也會有點慢,這是為什麼呢?


Atom 剛更新了 1.9.1 ,性能比 1.7 又提高不少(操作時間+啟動時間),我比較了一下和其他編輯器的性能,實測發現:

Atom 性能比 Emacs 好多了,速度比 Emacs 快不少,

不論啟動速度(都安裝幾個日常必備插件)還是平時操作的性能。

可以簡單感受下,emacs 打開2000行以上的源代碼,開啟語法高亮翻頁卡爆:

wget https://raw.githubusercontent.com/nothings/stb/master/stb_image.h
emacs stb_image.h

然後 emacs 里,按住page down或者ctrl-v,邊上開一個 top 看看:

持續按住 pagedown 兩秒感受一下 emacs 整個 gui沒有反應,完全卡住的感覺(假設文件有100頁,emacs翻頁是1,2,3。。10然後卡住5秒突然跳到100頁),桌面版 emacs 更慢:

同樣的事情 Atom/Vim 都很流暢,emacs 卻可以卡到單核佔滿,界面失去相應。

試想那麼慢的 emacs 都有一大群人在用,除了啟動慢一點的 atom 又算得了什麼呢?

性能大幅度提升的 Chrome 53 即將出正式版,屆時 electron / atom 的性能應該又能提升不少。

--


Atom編輯器是運行於Atomshell上的。

AtomShell是一個基於chromium的瀏覽器內核加上Nodejs的一個platform。(與NodeWebkit類似,不過個人傾向於AtomShell更強大,並且作者一直在維護更新)

也就是說,整個編輯器,其實是運行在一個瀏覽器上,而一些IO之類的操作等等是交給Nodejs來執行的。

啟動的整個流程基本上就是:

1.運行AtomShell native App

2. AtomShell去執行編輯器的入口頁面,過程就包含了各種JS,CSS等等資源的解析(跟瀏覽器解析web網頁的流程是一樣的),雖然chromium的JS引擎是Google V8引擎,但JS畢竟是腳本語言,和native語言比起來,效率確實低了不少。(慢在JS的執行效率和DOM操作上)

3.最後是載入編輯器所需的插件,這部分交給JS來執行,效率可想而知。

但不可否認,Atom任然是一個很強大,擴展性也很強的編輯器。

Atom也是我的主力代碼編輯器,在OSX下,沒怎麼感覺到慢,所以一直在用,特別是對git的支持非常棒。

沒啥利益相關,就是看過Atom的源碼,以及在AtomShell上做開發,經驗之談。


架構問題, 本來是個編輯器,非得弄成ide,自然了。

Vim

Emacs

NP++ 才是你最終的選擇


架構錯誤。

正確的架構是底層用C/C++,內嵌一門輕量級語言如lua或者scheme。

坦率地說這個編輯器沒什麽前途。開發者對同類軟體沒做調查,態度是很不嚴肅的。

主流的編輯器是:

Notepad ++

Sublime text

Vim

Emacs


github 那群人代碼寫的不行唄,你看同樣用 electron 的 VSC,就一點不卡……

當然後來逐漸改進了,所以 @zcbenz 還是有上進心的嘛(逃


之前還很好奇atom是用什麼寫的…直到我又一次手抽了,對他按了只有對chrome才會去按的組合鍵command+alt+i(打開開發者工具)

然後我發現原來可以把他當作瀏覽器玩…

怪不得很多插件是用JS寫的,怪不得他要搞個像npm一樣的apm…


之前一直在ubuntu上用atom體驗很好,這幾天回到windows,先用了vsc,很不錯,然後裝了atom,剛裝上很流暢,裝了一些插件後開始卡,又是重裝重啟的,什麼插件都沒有還是卡,換回vsc,vsc都開始卡了,就是有延遲的感覺,二且兩個卡的感覺是一樣的

然後,我突然想到之前因為chrome最小化然後打開屏幕會花,必須滾動一下頁面才顯示正常,在nivida顯卡設置裡面,把管理3d,physX加速都設置成了nivida的顯卡,chrome顯示一切正常了

不知道是這一堆設置的問題,但是我把它改回自動選擇,atom和vsc都不卡了

把這個改成質量優先chrome也正常了

所以說,卡不卡是不是還和顯卡的設置有關係


Windows下,我已經試用過三次了,每次升級都以為他們把卡的問題解決了,然後並沒有了,每次都讓我裝了又卸載。


私以為Atom才是未來, 雖然現在它還需要一段時間才追平達ST.


我也一直難以理解其中的奧妙,直到有一次我開了 360 ……

只要它在後台更新,我就卡著。

這就是為什麼過一會再打開它就不卡了。


因為你沒上固態,github那群人基本全用的macbook pro頂配,atom當然不卡。


有時候的錯誤提示讓人不明所以


強制關閉,打開命令行執行

atom --clear-window-state

然後打開項目,(滑稽臉


現在好多了,有時候需要更新下顯卡驅動


從Atom誕生就開始用到現在,一直都不流暢,經常卡住,以前還會死機,特別是保存和讀取文件,如果一段時間離開電腦,再返回編輯界面,會卡住一下(電腦性能還是可以的,i7 6800k, 三星的m.2 sdd,32GB內存),目前還是以sublime-text為主。


吃顯卡好像是真的……

我也是卡了好久,某一天突然福至心靈,更新了一下顯卡驅動。

然後就流暢了。


確實是比Sulime要卡,主要體現在剛啟動和第一次保存(ctrl+s)的時候,不知道是不是我自己的原因,不過還是用得最多 /捂臉 管理插件很方便


現在感覺很流暢了啊


啟動時慢 之後就流暢了...


你得明白,Github的開發者基本上是在Macbook Pro 做開發,由於技術原因,肯定卡爆了,跨平台很卡。效率比SublimeText差起來不是一個量級,UI自定義可以肯定,但是C++的插件,那真是差成狗。


推薦閱讀:

vim或者vi模式下,複製的正確姿勢是什麼?
前端開發使用什麼IDE最好?
學會了 Vim 還有必要用 GitHub Atom 或者 Sublime Text 么?
3Blue1Brown 的視頻是怎麼製作的?

TAG:Vim | Emacs | Atom文本編輯器 |