當前位置:
首頁 > 知識 > FastR:R的直接替代品,讓R的速度分起來!

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

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

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

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

FastR: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。

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 IT168企業級 的精彩文章:

TAG:IT168企業級 |