我一直在尋找優化一個ruby程序,對大量數據計算密集的程序。我不知道C並選擇了Ruby(不是我也很瞭解它),除了執行所需的時間之外,我對結果非常滿意。這是很多數據,並且不花錢,我想知道我能做些什麼來確保我最大化自己的系統資源。在所有處理器上運行ruby程序
當我運行基本的Ruby程序時,它是否使用單個處理器?如果我沒有專門分配任務給處理器,Ruby將不會讀取我的程序並且神奇地加載每個處理器以儘可能快地完成程序?我假設沒有...
我一直在閱讀有關加速Ruby,並在另一個線程閱讀,Ruby不支持真正的多線程(雖然它說JRuby的確)。但是,如果我要將程序「分解」爲兩個塊,可以在單獨的實例中運行,並在parralel中運行這些塊......這兩個塊是否會自動運行在兩個獨立的處理器上?如果我有四個處理器並打開四個外殼並運行四個獨立部分(1/4)的程序 - 它會在1/4的時間內完成嗎?
更新
閱讀評論後,我決定給JRuby一槍。移植應用程序並不困難。我還沒有使用過「桃子」,但通過在JRuby中運行它,該應用程序在1/4時間內運行!瘋。我沒有期待這麼大的改變。現在就去投一次,看看這是如何改善的。仍然無法相信這種提振。
更新#2
剛給了桃子一試。結束了另外15%的時間削減。所以切換到JRuby並使用Peach絕對是值得的。
謝謝大家!
沒有看到源代碼,我們猜測可以做些什麼來加快你的應用程序。儘管如此,如果你正在以艱難/緩慢的方式做一些事情,可能會加快一點。 –