title: RはCに比べて100倍遅い
url: http://www.anlyznews.com/2012/02/r_11.html
snippet:
-----引用-----
Rはループ速度が段違いに遅いと言われる。確かにループとメソッド呼び出しで構成したマイクロベンチマークを実行すると、Javaが6.32秒、C++で6.33秒で終わる処理が、87時間18分16.0秒(推定値)かかったりする。S-PLUSやMatlabなどの他の同種の言語よりは高速か同等と指摘されているが、汎用言語に比べると断然遅い(Benchmark 2)。
要素が32767あるベクターx、yを引数に取り最小公倍数を返す関数をRとCでそれぞれ記述し、経過時間を計測している。内部的にループ演算で最大公約数を計算するルーチンがあり、Rで実行するのは不利な演算だ。
実行結果はRが1.193秒、Cが0.005秒の経過時間がかかり、その速度差は238.6倍となった。R側のコードは行列化してapply関数を用いるなどで、さらに高速化は可能な見込みだが、その差は100倍を切る事は無いであろう。RはCに対して圧倒的に遅い。
-----引用-----
0 件のコメント:
コメントを投稿