nim (443レス)
上下前次1-新
抽出解除 必死チェッカー(本家) (べ) 自ID レス栞 あぼーん
359: デフォルトの名無しさん [sage] 2023/08/28(月) 06:30:35.88 ID:eKgmQu1D(1/3) AAS
>>356
変換キャッシュの見方、ありがとうございます
>再帰処理をgotoループに置き換えている可能性があります
確認したところ、置き換わっていませんでした
>コンパイル型言語のベンチを取る時は再帰処理コードは
>避けた方が良いと思います
↑ここ詳しくお願いします
>再帰処理をgotoループに置き換えている
↑こうなっていませんでしたが、これ前提での話だったのですか?
再帰fibonacciは個別の言語コンパイラ(更にバージョン)の
最適化ベンチマークには持って来いに見えますので
360: デフォルトの名無しさん [sage] 2023/08/28(月) 06:40:36.37 ID:eKgmQu1D(2/3) AAS
>>358
>Nimコンパイラ自体は再帰関数の最適化はしてなかったと思う。
その通りでした
確かめたところ二つの再帰関数コールがそのまま残っていて、
その他はNimのトランスパイル過程でのノイズがあるだけです
gccがノイズを消すために最適化を頑張った結果、Cより速くなったのですかね
361: デフォルトの名無しさん [sage] 2023/08/28(月) 06:47:48.48 ID:eKgmQu1D(3/3) AAS
何気にNim + gcc HEADにしてみたら、更に速かったです
Nim 2.0.0 + gcc 12.2.0 -O2 (44はコマンドライン引数)
https://wandbox.org/permlink/RVJ4eHKKl5DARK3u
>Time= 0.250s Result=701408733
これ↑がこう↓
Nim 2.0.0 + gcc HEAD 14.0.0 -O2 (44はコマンドライン引数)
https://wandbox.org/permlink/cpYesJtnlRNJiu7Z
>Time= 0.197s Result=701408733
参考値再掲(>>353)
C/gcc -O2 (44はソース直書き)
https://wandbox.org/permlink/9OYZBH14tYooZHF7
> Time: 0.89583 seconds
C/clang -O2 (44はソース直書き)
https://wandbox.org/permlink/U97PecZYrzymnfH4
>Time=1.58712s Result=701408733
gccの最適化が凄すぎて意味わからないですが、ありがたく享受する事にします
上下前次1-新書関写板覧索設栞歴
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.887s*