32ビットマシンでは、1回のメモリリードサイクルでデータが4 bytes
になります。
したがって、以下のバッファを読み取るには、下記の128 bytes
のバッファを読み取るのに32リードサイクルが必要です。今
std :: alignasはどのようにプログラムのパフォーマンスを最適化しますか?
char buffer[128];
、下に述べたように、私はこのバッファを揃えているならば、私はどのようにそれを読むために、それはより速くなります知らせてくださいと仮定?
alignas(128) char buffer[128];
私は、メモリ読み出しサイクルが4バイトだけ残っていると仮定しています。
オーバーアラインメントは、C++標準で動作するとは限りません。正確なプロセッサとコンパイラがこの質問に答える必要があります。 – Yakk
関連:http://stackoverflow.com/questions/381244/purpose-of-memory-alignment – NathanOliver
あなたは確認できません。* 32ビットマシンでは、1回のメモリリードサイクルで4バイトのデータが得られます。 SIMD命令を参照してください。 –