tcc 学習:オブジェクト性能
2017-05-15 : 
PCクリニック
前(2017-05-13)の記事「LuaJIT-tcc:例題から学習」に続いて、今回は、tcc で生成したオブジェクトの性能について学習。
tcc プロセッサ自体の性能については、
先日(2017-05-03)の記事「tcc - Tiny C Compiler」で書いた如く、
・FAST! tcc generates x86 code. No byte code overhead.
Compile, assemble and link several times faster than GCC.
===
・早く! tccはx86コードを生成します。
バイトコードオーバーヘッドはありません。 コンパイル、アセンブル、
リンクはGCCより数倍高速です。
だそうですね。
そうすると、生成結果のプログラムの実行性能を知りたい。
例によって???
昨年9月(2016-09-23)の記事「LuaJIT vs LLVM/Clang」で書いた、
“フィボナッチ数を求めるプログラム”で実行時間を計測。
計測のためのプログラム:
----- fib.gsl ------と云ったもの。
tcc = require'tcc' ('libtcc')
TCL = tcc.new()
TCL:set_output_type( 'output_memory' )
----------------------------
TCL:compile_string [[
int fib( int n ){
if( n < 2 ){ return n;
}else{ return fib(n-1) + fib(n-2);
}
}
]]
TCL:relocate( 'relocate_auto' )
fib = TCL:get_symbol( 'fib', 'int(*)( int )' )
-- ======================
local t=require'time'
Cst=t.time()
print( fib( 39 ) )
Cet=t.time()
print( Cet-Cst ) -- 0.515 秒
-- ====================
TCL:delete()
結果は、上記プログラム内コメントの通り。
これは、以前の LLVM/Clang での結果の -O3 無しに相当する。
つまり、
tcc のオブジェクトは、
最適化無し LLVM/Clang のオブジェクトと一緒。
LuaJIT に比べて、約 1.5 倍速い。
tcc は、MinGW に比べて、
コンパイル時間は数倍速く、オブジェクト性能は同等
(最適化機能は無し)
と云うこと?
本日はここまで。
luajit-tcc 学習は続く。
見ていただいた序でとは厚かましい限りですが、
お帰りに投票して頂けるとなお嬉しいです。 ⇒


170404
スポンサーサイト