コンパイル速度が速いと本人が言っていると小耳に挟んだが、実は:
1. WindowsとC++の組み合わせの場合、必須となる windows.h ヘッダだけで、コメントを除いた状態で数えても
1万8,000行程度あり、*.cpp ファイルで書いたプログラム本体より、windows.h ヘッダ
の解析に時間ががかっている。そのために pre-compiled heaeder 技術を VC++ は使っている。
だから、windows.h やその相当品を読み込まない状態で Blawn をテストした場合、
WindowsとC++の組み合わせとは解析している行数が全く異なるためコンパイラの速度比較
としては公平とは言えない可能性が高い。
2. 例えば、VC++のコンパイラは、pre-compiled header を使った場合、現在のエントリモデルのCPUでも、
1ソース当り 30(ms)程度でコンパイルを終える。pre-compiled header
を使わない場合は、100(ms)程度。
3. Blawnが字句解析に用いているflexは正規表現で字句解析をするので根本的に遅くなる。
例えば、windows.h はバイト数が 1MB程度もあるので、字句解析で 1文字当たり1クロック使うと、
0.3(ms)程度時間がかかる。もし、字句解析部分が1文字当り100クロック使ってしまうと、
それだけでVC++のトータルコンパイル時間に達してしまうことになる。
それだけに、字句解析は未だに1クロックで泣き笑いをする分野である。そこに、
手書きコードより効率の悪い flex を使っている時点でコンパイル速度は望めない。
ちなみに、new, delete を組み合わせて使うだけで、300クロックかかってしまうので、
ヒープメモリの使用も控えるのに越したことは無い。
4. C++ には、#define マクロや、#if, #else, #elif, #endif などでの前処理もできる。
これは見落とされがちだが実は重要。ここも字句解析ほどではないが、1クロックに
泣き笑いをする分野である。Blawnには前処理層が無いから、VC++などと速度の単純比較は出来ない。
5. BlawnはバックエンドにLLVM処理用にclang系を使っている。これは、VC++に比べると
遅い。なので、トータルで見たとき、flexを使わずに手書きしたとしても、LLVM
を使っている段階で、VC++のコンパイル速度に勝つことは最初からほぼ不可能。
探検
次世代が造った言語 blawn
■ このスレッドは過去ログ倉庫に格納されています
293デフォルトの名無しさん
2019/11/01(金) 14:33:20.16ID:Am2UW0G2■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 中国 東アジアの海域に過去最大規模 100隻超の艦船を展開 高市総理の発言に反発か ★2 [Hitzeschleier★]
- 【独自】渡邊渚さんを脅迫の疑いで32歳女を書類送検 警視庁 渡邊さんの写真集に包丁置いた写真を投稿 [ひかり★]
- “信号待ち”中国人観光客2人死亡の山陽電鉄踏切事故 遺族が約1億4000万円賠償求め提訴 神戸地裁 [七波羅探題★]
- 【千葉】「今ぶつかっただろ。痛えじゃねえか。骨折れてるぞ。慰謝料払えよ」 松戸駅で40代男性に因縁をつけ暴行、強盗 男5人を逮捕 [シャチ★]
- 【速報】山本由伸のWBC欠場決定! [牛丼★]
- 「さようなら日本。帰国します」経営ビザで中国系「ペーパー会社」大阪で乱立、移民ビジネスの仕組み…500社超で取締役の日本側協力者も [ぐれ★]
- 【高市資産】 小泉コメ防衛大臣。 2億7248万円の資産を保有。 なぜか名義は全部クリステル [485983549]
- 【高市カード】 マイナンバーカード。1億枚を突破 🎉 保有率80%超え。 持ってないのって、お前らとバカウヨだけじゃね? [485983549]
- 整形女がキレる「カリカリ」イラストを実写化 [663382246]
- バカ「ピットブルは危険」👉ガチのマジで2秒で論破されてしまう [329329848]
- 【悲報】小学校2年生「パパこの算数の問題わかる?」→難しくて炎上wwwwwwwwwwwwwwwwwwww [802034645]
- シャラップ上田、統一教会関係の団体で理事に出世していた [389326466]
