2

私たちコンパイラ オタクのほとんどは、V8 オブジェクト プロパティ アクセスに関する Google の論文を読んだことがあります。そこでは、結果として得られる手法は、配列メンバーに (間接的に) 直接アクセスするだけです。私の質問は:

辞書へのアクセスを同じ方法で最適化する人はいますか (固定インデックスを (コンパイル時の) 固定キーに割り当てます)。どこにでも適用できる必要はありませんが、おそらくコンパイル単位全体に適用できるでしょうか? または辞書は読み取り専用ですか?または、パスのコンパイル単位間ですか? 何にせよ、口述を展開することさえあるかもしれません。key の代わりに固定配列インデックスを使用してアクセスまたはインライン化します。

一定時間のルックアップ辞書がどのように機能するかは知っていますが、実行時に V テーブルのような構造を処理するようにハードウェアが指導されるコンパイル済み言語 (C++ など) をさらに強化するために、提案された最適化が行われる可能性があります。

どなたかご存知でしたら、勘弁してください。どうもありがとう!

TL;DR特定の言語の内部構造体/オブジェクト配列ではなく、辞書アクセスを最適化する既存の方法 (配列インデックスを介したアクセスなど) を知りたいstd::map

4

1 に答える 1

1

疑わしい

これは理論的には可能ですが (std::map実装は標準ライブラリの一部であるため)、そのようなトリックを実行する C++ コンパイラを私は知りません。

C++ で配列のインデックス付けが必要な場合は、配列を選択してインデックス付けします (おそらく名前付き定数を使用)。

于 2013-02-08T14:22:57.637 に答える