LuaJIT vs LLVM/Clang

2016-09-23 :  PCクリニック
本文の前に、
-・・・ -・-
現時点での blogramのランクインカテゴリは、
7、2、0、0、0、 0、1、0、0、0(40)で、換算ポイント 87pt 。
「Firefox」7位ダウン。「Perl」「化学業界」「硝子業界」「FM COCOLO」、
「e-radio」「グルコサミン」「Python」bg値変動。「C言語」「FM青森」変化無し。
・-・ - -・

さて、本文。

turtle グラフィックス”に関しては、
先々月(2016-07-27)の記事「FMSLogo:タートルグラフィックス
や、
先月(2016-08-07)の記事「wxMaxima:turtle グラフィックス
そして、“Python”で数件記事にしている。
では、“LuaJIT”では、何か無いのか???

「LuaJIT turtle」で検索したら、

“Qiita”に、
フィボナッチ数だけで30以上のプログラム言語に精通したつもりになる
なる記事を見つけた。

この記事の最終段に、

  ・・・・・
  ・・・・・
  実行速度比較
  システム構成
  CPU:Intel(R) Core(TM) i7-3930K CPU @ 3.20GHz
  メモリ:32GB(速度とか忘れました)
  OS:Arch Linux Kernel-4.4.1 SMP x86_64

  頭の悪い再帰関数で39番目の値「63,245,986」を求める時間です。
  コンパイルオプションは適当に何種類か試して速かったものを採用しました。
  関数呼び出しのコストぐらいしかわからないかも。
  他のアルゴリズムだと大体瞬殺なので面白くありません。
  ・・・・・
  ・・・・・

と云うことで、

  順位  言語   バージョン   実行時間

   7  C (gcc -O3)  5.3.0   0.255 sec

  10  C (clang -O)  3.7.0   0.357 sec

  23  julia (-O)   0.4.5   0.711 sec

  25  Lua (luajit)  2.0.4   0.897 sec

  41  Python     2.7.11  20.680 sec

  45  Perl      5.22.1  56.042 sec

などとあった。


<紙>の環境でやってみた。

システム構成
・ CPU:Intel Core i5-6500 CPU @ 3.20GHz
・ メモリ:8GB DDR4 SDRAM(PC4-17000/4GBx2/デュアルチャネル)
・ OS:Windows 7 Professional 64bit


C 言語(dll化)では、
/***** C_fib.c *****/
#include
#include

int fib( int n ){
if( n < 2 ){
return n;
}else{
return fib( n-1 ) + fib( n-2 );
}
}
を、

 clang -shared -O3 -o C_fib.dll C_fib.c

でコンパイルして“C_fib.dll”を生成。

そして、LuaJIT である、GSL Shell で 両方を実行。
----- test_fib.gsl -----
local t=require'time'
------------------------------------------
ffi.cdef[[ int fib( int ); ]]
k_lib = ffi.load( 'C_fib' )

Cst=t.time()
print( k_lib.fib( 39 ) )
Cet=t.time()
print( Cet-Cst ) -- 0.38 秒。 -O3 無しでは、0.5 秒。

-------------------------------
function fib(n) ----- LuaJIT 版
if n < 2 then
return n
else
return fib( n - 2 ) + fib( n - 1 )
end
end

Cst=t.time()
print( fib( 39 ) )
Cet=t.time()
print( Cet-Cst ) -- 0.74 秒:1.95 倍。 -O3 無し比:1.48 倍。
でした。


<紙>としては、約2倍と考える。

そうすると、
無理して C でコーディング&コンパイルする必要は無い。

全てを Lua ( GSL Shell ) でコーディングして充分だろう。


本日はここまで。


Lua ( GSL Shell ) 学習は続く。


見ていただいた序でとは厚かましい限りですが、
お帰りに投票して頂けるとなお嬉しいです。 ⇒ blogram投票ボタン


160828,0706
関連記事
スポンサーサイト

コメントの投稿

管理者にだけ表示を許可する

おきてがみ/blogram
blogram投票ボタン



おきてがみ

最新記事
カレンダー
05 | 2017/06 | 07
- - - - 1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 -
月別アーカイブ
カテゴリ
最新コメント
検索フォーム
リンク
プロフィール

<紙>

Author:<紙>
ようこそ。
「パソコンヲタクの雑記帳」
もろもろなことを綴っています。
パソコン ヲタクってねくら?
画像は kami でなく kani です。

カウンター(fc2、i2i) /Google Analytics


i2i(from 2010-08-24)
Total =
Today  =  
Yesterday=
アンチエイジング

Google Analytics
ブックマーク