[過去ログ]
次世代が造った言語 blawn (460レス)
次世代が造った言語 blawn http://mevius.5ch.net/test/read.cgi/tech/1571717826/
上
下
前次
1-
新
通常表示
512バイト分割
レス栞
抽出解除
必死チェッカー(本家)
(べ)
自ID
レス栞
あぼーん
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
293: デフォルトの名無しさん [sage] 2019/11/01(金) 14:33:20.16 ID:Am2UW0G2 コンパイル速度が速いと本人が言っていると小耳に挟んだが、実は: 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++のコンパイル速度に勝つことは最初からほぼ不可能。 http://mevius.5ch.net/test/read.cgi/tech/1571717826/293
メモ帳
(0/65535文字)
上
下
前次
1-
新
書
関
写
板
覧
索
設
栞
歴
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.415s*