我的同事們通常使用C或Fortran來進行高性能計算(大數據量的數學計算)。我想知道是否有可能對Ruby代碼進行編譯/轉換,並在性能方面接近優化的C代碼?使用Ruby進行高性能計算?
有許多項目可以將Ruby編譯爲字節碼(Rubinius,JRuby,IronRuby,YARV?,Cardinal)和本機代碼(MacRuby,..?)。他們接近C表現的機會是多少?
將Ruby代碼轉換爲C代碼還有將近2年的非活動項目:ruby2c。
相關問題:
- Is it possible to compile Ruby to byte code as with Python?
- Can Ruby, PHP, or Perl create a pre-compiled file for the code like Python?
你爲什麼要這樣做?不要誤解我的意思 - 我喜歡紅寶石,但最好能知道你的驅動程序是什麼。 你有沒有嘗試過一些實驗,或者你認爲紅寶石會變慢?根據數據的性質和計算結果,性能差異可能並不那麼大,或者可能很大。你直到你嘗試纔會知道。 – Rob
我們的代碼非常複雜,所以如果我們可以用Ruby而不是C來編寫它,那將是非常好的。然而,根據[某些基準測試],當前的Ruby實現比C慢100倍(http:// shootout.alioth .debian.org/u64q/benchmark.php?測試=所有&郎= YARV&LANG2 = GCC)。我們還需要運行集羣上的代碼,其中計算可能需要幾天(C)。如果我們可以將Ruby代碼編譯爲比C慢2-3倍的字節碼,那麼它可能會很好。對於我們的計算,因子100太慢。 – Andrei