2017 年 6 月 27 日
ClojureScript 團隊
ClojureScript 1.9.660 版本中包含多項令人振奮的效能增強功能。其中一些改進加快了編譯器本身的速度,另一些則優化了編譯器產生的程式碼,還有一些則微調了資料結構以及對它們的常見操作。
透過兩個小變更,編譯器現在可以更快地編譯 ClojureScript 程式碼。使用者回報編譯時間縮短了 20–40%。
別忘了嘗試 :parallel-build
,預設情況下它未啟用。這可以進一步將您的編譯時間縮短一半。
:^const
Var 值現在會被內聯
sort
、shuffle
現在快 30-40%(感謝 to-array
優化)
apply
快 200-400%
defmulti
在遺失的情況下現在快得多(200-1000%)
集合和對應的等價性快 100-200%
在集合和對應上使用 reduce
現在快約 100%
已進行許多正確性修復,其中一些使 ClojureScript 更符合 Clojure 的行為。在編譯快取方面也進行了其他重要的修復;特別是當啟用快取時,定義 Specs 的程式碼現在可以正常運作。
注意:此版本為在協定方法實作中採用可變參數簽名的不正確程式碼引入了新的警告。此類程式碼將在此版本中繼續運作。請務必更新任何使用此建構的程式碼或函式庫,以便協定實作符合某些現有的簽名。
新的 resolve
巨集 - 類似於 Clojure 的,但在編譯時
模組支援萬用字元命名空間
新的 Closure 語言選項 :es-2017
、:es-next
新的編譯器選項 :fn-invoke-direct
(對 :static-fns
的進一步優化擴充)
您可以使用 js/Promise
和更多 ES 功能,並讓 Google Closure Compiler 產生 polyfill(:rewrite-polyfills
編譯器選項)
您絕對應該在您的程式碼上試用此版本,看看它的效能如何!我們希望您喜歡此版本!
如需 ClojureScript 1.9.660 中的完整更新列表,請參閱 變更。