掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
変数のアクセス速度について (ID:72409)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
日本語がわかりにくい・・・質問として致命的だ。要書き直し。 何と何を比較している/比較したいのか読み取れない。 以下勝手に俺解釈で続けるものとする。 ここは Visual C++ が主なので、プラットフォームは Windows 、 CPU も x86/x64 とする。 すると、 ・静的変数か自動変数かで速度は大きく違う ・静的変数が内部結合 (internal linkage) か 外部結合 (external linkage) かどうかは無関係 自動変数はレジスタになることもあるので静的変数と単純比較できない。 一般的に自動変数より高速な静的変数というものは存在しない。 静的変数のアクセスはメモリアクセスになる。 メモリアクセスの速度はキャッシュのヒット率だけにほぼ依存する。 L1 キャッシュ=CPU ALU の速度、に対して RAM = CPU ALU に比べて10倍から100倍遅い。 ページフォルトなど発生したら数億〜数兆倍の時間がかかる。 なので、巨大静的変数があってキャッシュに乗らない・・・というときに 同一ソース/他ソースで速度が違うことはあってもおかしくない。 今まさに実行中のコードは必ず L1 キャッシュに乗るので アドレシングによる命令語長の違いなどはあっても影響度小 x86/x64 以外ではまた話は違うので当該 CPU のマニュアルを参照。
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2020 Takeshi Okamoto All Rights Reserved.