2016-08-17 9 views
0

を設定減らすべきどのように設定して作業するのか、私は個人的にはセットがメモリ上のデータを変更/書き出し、メモリを読み込むだけなので、セットを取得して減らすことをお勧めします。私はそれが正しいと思いますか? は、私は2 C++のコードを持っている変数

は読みいただき、ありがとうございます:)

+0

ありがとうございました。書き込みと読み取りのデータ部分はどうですか?書き込みデータは読み込みデータ以上にメモリ/ラムに影響しますか? – 123iamking

+0

私は、この質問の重複を見て覚えていると思います。割り当てを避けるために 'if'を使う価値があるのですが、それを見つけることができない場合です。 –

答えて

1

番号が割り当てがうまくいけば、条件分岐よりも安価であるレジスタ間の移動にコンパイルされます。

healthがグローバルである場合は、ストアをループのグローバルに手動でシンクさせることができますが、すべての繰り返しのストアも悪くはありません。 L1キャッシュでヒットするので、同じメモリ位置にストアを繰り返すことは安価です。他のコアのメモリ帯域幅を浪費することなく、クロックあたり〜1のスループットが期待できます。

assemblyというタグが付いているので、そのプラットフォームのパフォーマンスの詳細、特にAgner Fogのものへのリンクについてはタグwikiを参照してください。多くの概念は他のアーキテクチャでも似ています。

+0

書き込みデータ部分と読み出しデータ部分はどうですか?書き込みデータはメモリ/ラムに影響を与えますか?書き込みは書き込みよりも読み込みよりも暑くなりますか? – 123iamking

+0

書込みが読み込みよりも熱くなるかどうか分からないと満足できないのですか? – 123iamking

+1

@ 123iamking:DRAM書き込みコマンドはおそらく、エネルギー消費のためのDRAM読み出しコマンドとほぼ同じです。しかし、キャッシングのために、asm内のすべてのストアでは発生しません。 asmとDRAMのメモリトラフィックには大きな違いがあります。レース・スリープはCPUコアの消費電力にとって重要であるため、平均してより少ないサイクルでコードを実行するようにしてください。 –

関連する問題