この文書の現在のバージョンと選択したバージョンの差分を表示します。
両方とも前のリビジョン 前のリビジョン 次のリビジョン | 前のリビジョン | ||
mae3xx_tips:test_fib_benchmark:start [2018/12/24 09:04] admin [Python] |
mae3xx_tips:test_fib_benchmark:start [2023/06/23 07:46] (現在) admin [Nim] |
||
---|---|---|---|
ライン 44: | ライン 44: | ||
==== Perl ==== | ==== Perl ==== | ||
- | <file perl fib.pl> | + | <sxh perl toolbar:false; title:fib.pl> |
sub fib($) { | sub fib($) { | ||
return $_[0] if ($_[0] < 2); | return $_[0] if ($_[0] < 2); | ||
ライン 51: | ライン 51: | ||
print fib(38), "\n"; | print fib(38), "\n"; | ||
- | </file> | + | </sxh> |
実行結果はこのようになりました。 | 実行結果はこのようになりました。 | ||
ライン 94: | ライン 94: | ||
==== node.js ==== | ==== node.js ==== | ||
- | <file javascript fib.js> | + | <sxh javascript toolbar:false; title:fib.js> |
function fib(n) { | function fib(n) { | ||
if (n < 2) return n; | if (n < 2) return n; | ||
ライン 101: | ライン 101: | ||
console.log(fib(38)); | console.log(fib(38)); | ||
- | </file> | + | </sxh> |
実行結果はこのようになりました。 | 実行結果はこのようになりました。 | ||
ライン 122: | ライン 122: | ||
Ruby2.0 を追加で導入し、テストしてみました。 | Ruby2.0 を追加で導入し、テストしてみました。 | ||
- | <file ruby fib.rb> | + | <sxh ruby toolbar:false; title:fib.rb> |
def fib(n) | def fib(n) | ||
return n if (n < 2) | return n if (n < 2) | ||
ライン 129: | ライン 129: | ||
puts fib(38) | puts fib(38) | ||
- | </file> | + | </sxh> |
実行結果はこのようになりました。 | 実行結果はこのようになりました。 | ||
ライン 161: | ライン 161: | ||
==== PHP5 ==== | ==== PHP5 ==== | ||
- | <file php fib.php> | + | <sxh php toolbar:false; title:fib.php> |
<?php | <?php | ||
function fib($n) { | function fib($n) { | ||
ライン 171: | ライン 171: | ||
print "\n"; | print "\n"; | ||
?> | ?> | ||
- | </file> | + | </sxh> |
<code> | <code> | ||
ライン 193: | ライン 193: | ||
コンパイルする言語なので、速いと思いますが一応。 | コンパイルする言語なので、速いと思いますが一応。 | ||
- | <file java fib.java> | + | <sxh java toolbar:false; title:fib.java> |
public class fib { | public class fib { | ||
static int fib(int n) { | static int fib(int n) { | ||
ライン 204: | ライン 204: | ||
} | } | ||
} | } | ||
- | </file> | + | </sxh> |
実行結果は下記のようになりました。 | 実行結果は下記のようになりました。 | ||
ライン 222: | ライン 222: | ||
\\ | \\ | ||
- | ==== Boo ==== | + | ==== Java (OpenJDK 11) ==== |
- | 型付Python... !?\\ | + | OpenJDK 11 でも試してみます。 |
- | これは。。。 | + | |
- | + | ||
- | <file python fib.boo> | + | |
- | def fib(n as int) as int: | + | |
- | if n < 2: | + | |
- | return n | + | |
- | return fib(n - 2) + fib(n - 1) | + | |
- | + | ||
- | print fib(38) | + | |
- | </file> | + | |
<code> | <code> | ||
- | user1@plum:~$ booc fib.boo | + | user1@plum:~$ time java fib |
- | Boo Compiler version 0.9.5.1 (3.2.8 (Debian 3.2.8+dfsg-4ubuntu1)) | + | |
- | user1@plum:~$ time mono ./fib.exe | + | |
39088169 | 39088169 | ||
- | real 0m2.954s | + | real 0m7.083s |
- | user 0m2.893s | + | user 0m2.139s |
- | sys 0m0.036s | + | sys 0m4.703s |
+ | user1@plum:~$ time java fib | ||
+ | 39088169 | ||
+ | |||
+ | real 0m2.284s | ||
+ | user 0m2.157s | ||
+ | sys 0m0.114s | ||
</code> | </code> | ||
- | 速い! .NET互換環境の Mono 、やりますね。 | + | <code> |
+ | user1@plum:~$ java -version | ||
+ | openjdk version "11.0.3" 2019-04-16 | ||
+ | OpenJDK Runtime Environment (build 11.0.3+7-Ubuntu-1ubuntu218.04.1) | ||
+ | OpenJDK Server VM (build 11.0.3+7-Ubuntu-1ubuntu218.04.1, mixed mode) | ||
+ | </code> | ||
+ | |||
+ | 初回はキャッシュされてないので遅いですが、"user" の時間は Java SE embedded 8 とあまり遜色なさそうな感じです。 | ||
\\ | \\ | ||
ライン 255: | ライン 256: | ||
ネイティブコードにコンパイルする、C言語でも試してみます。 | ネイティブコードにコンパイルする、C言語でも試してみます。 | ||
- | <file C fib.c> | + | <sxh c toolbar:false; title:fib.c> |
#include <stdio.h> | #include <stdio.h> | ||
ライン 267: | ライン 268: | ||
return 0; | return 0; | ||
} | } | ||
- | </file> | + | </sxh> |
実行結果は下記のようになりました。 | 実行結果は下記のようになりました。 | ||
ライン 288: | ライン 289: | ||
いま注目の Nim では? | いま注目の Nim では? | ||
- | <file nim fib.nim> | + | <codify nim> |
proc fib(n: int): int = | proc fib(n: int): int = | ||
if n < 2: | if n < 2: | ||
ライン 296: | ライン 297: | ||
echo(fib(38)) | echo(fib(38)) | ||
- | </file> | + | </codify> |
<code> | <code> | ||
ライン 308: | ライン 309: | ||
C よりも速いとは。 | C よりも速いとは。 | ||
- | |||
{{:mae3xx_tips:test_fib_benchmark:a614d39a.gif|Java or Mocha?}} | {{:mae3xx_tips:test_fib_benchmark:a614d39a.gif|Java or Mocha?}} |