コンパイル速度が速いと本人が言っていると小耳に挟んだが、実は:
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■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【速報】巨人 高橋由伸氏にヘッドコーチ就任要請! 松井秀喜新監督の「1人だけ声をかけています」は高橋由伸氏… 超豪華内閣が実現へ [冬月記者★]
- 【野球】松井秀喜新監督、組閣について「絶対この人という人はいない。友達いないタイプなので」「現時点で一人だけ声を掛けてます」 [ニーニーφ★]
- セブンイレブンからの客離れが止まらない ローソン、ファミマ最高益の裏で「ひとり負け」巻き返しの切り札は★2 [♪♪♪★]
- 日本のGDP、世界6位転落へ…薬物もやらない勤勉な日本人が貧しくなる屈辱は“完全な政策ミス”か? ★8 [ぐれ★]
- パナソニックHD、利用禁止の生成AIに従業員らの情報送出 33万人分 [少考さん★]
- 【芸能】山添寛「この違和感って僕だけ?」 ランチでライス大盛り頼むと…提示された料金に「意味分からへん」 [冬月記者★]
- ひろゆき「パリ暴動の逮捕者、7割が仏国籍で95%が仏生まれ。ソースは司法省」→ネトウヨ大激怒、また炎上wwwwww [834922174]
- 10.23🏡とうふさんの日😊
- 道譲って貰ったらハザード点けるやつ居るじゃん
- 【高市悲報】倉田真由美「知性を身につければ左翼になるという発想は驕り」 [834922174]
- 飲食店の駐車場に車停めたら「一々隣に停めるな」と言われたんだが
- パナソニック、33万人の個人情報流出!人事が従業員のエクセルをChatGPTにアップしてしまい漏洩 [347751896]