[過去ログ] Qiita 5 - キータぞ、来たぞ、キータだぞー (990レス)
前次1-
抽出解除 必死チェッカー(本家) (べ) 自ID レス栞 あぼーん

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
955
(2): デフォルトの名無しさん [sage] 2025/02/06(木) 13:12:59.75 ID:NMJzmIW7(1/2) AAS
『C# の型システムで Brainf*ck コンパイラを作ってみた』

記事の内容は興味深いのだけど、

> 驚くほど .NET AOT が C 言語を上回り、一位になってしまいました。
> これも、C# の型システムによるゼロオーバーヘッド抽象のおかげと言えるでしょう。

はちょっと残念な感じ。
C#贔屓でCに勝って嬉しいのはわかるけど、この記事でCが遅いのは変数を大域変数にしてるせいでgccが効率悪いコード吐いてるからなんだよなあ。
959
(1): デフォルトの名無しさん [sage] 2025/02/06(木) 15:52:42.36 ID:NMJzmIW7(2/2) AAS
記事からリンクされてるMandelbrotプログラムを記事からリンクされてるBrainfuckをC言語にするコンパイラで変換し、オンライン実行環境である https://tio.run/ で C(gcc) を選択してCodeにコードを貼り付け、Compiler flagsに-O3と-march=nativeを指定して実行したところ約5.7秒掛かった。
Cプログラムの大域変数pをmain()ローカルへ変更し

#include <stdio.h>
unsigned char c[30000] = {0};
-unsigned char *p = c + 14999;

int main(void) {
+unsigned char *p = c + 14999;

実行すると約3.4秒。4割ほど速くなった。

記事のC言語の実行時間は効率の悪いコードで行われているのでC#との比較はフェアではない感じ。
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.031s