您的位置:首頁>正文

FastR:R的直接替代品,讓R的速度飛起來!

R語言是一種利基語言, 除了研究學者和資料科學家, 大部分的開發者對於這種動態語言都持欣賞的態度。 當然, 對於一個1993年首次開發的程式設計語言來說, R語言使用者通過三百多萬其實也沒有太了不起。

沒錯兒, R的年齡確實不算太小, 但是由於缺乏JIT, 所以R通常會很慢。 R也是記憶體佔用者, 這是因為它有較大的物件, 大量分配, 並且有一個不移動的垃圾收集器。 此外, R具有複雜的語義, 這使得本科生和研究生很難在資料科學實驗室中學習它。

作為一個"必須維護的遺留軟體", R還必須發展以迎接新的挑戰。

FastR

那麼, R語言應該如何發展呢?

其中一種方法是通過FastR專案, 重新考慮如何實現R。 這個虛擬機器利用了測試技術, 在Truffle的基礎上在Java中實現了R。 FastR高效、相容、支援多種語言。

R既不是最快也不是最高效的程式設計語言。 FastR通過對Truffle框架提供的動態優化特性的廣泛使用,

提高了原有性能, 消除由R語言引入的抽象, 允許Graal編譯器在運行中創建優化的機器碼。

Truffle框架還允許FastR解決語言不相容問題。 R功能強大且靈活, 但常常與其他語言(如Java、Fortran和C/ c++)的介面創建產生顯著的開銷。 這是由不同語言使用的不同執行策略造成的, 例如, 編譯與解釋, 以及不相容的內部資料表示。

我們如何解決這種基本的不匹配呢?Truffle框架將必要的多種語言直接構建到運行時。 因此, FastR使用這種基礎結構, 可以支援多種語言透明、無縫地交互。 無論語言邊界如何, 多語言應用程式的所有部分都可以由同一個編譯器編譯, 也可以同時執行和調試。

另外, 添加JIT編譯器只能説明解決速度問題。

如何使用FastR

FastR目前有兩種形式:

預先構建的二進位檔案,

其有Ruby和JavaScript的Truffle實現, 可用於Linux和Mac OS x。 不幸的是, 目前還沒有Windows版本。

GitHub上的原始程式碼版本。 此選項不包含Ruby或JavaScript。

FastR的最終目標是成為R的直接替代品, 不過現在還在進行中, 如果想要瞭解更多FastR的資訊, 或者想要做一些貢獻的朋友, 可以查看下面的連結:https://github.com/oracle/fastr。

同類文章
Next Article
喜欢就按个赞吧!!!
点击关闭提示