アプリケーションを32ビットから64ビットにアップグレードすると、オブジェクトのポインタサイズとメモリフットプリントが増加します。C++でクラスインスタンスのメモリレイアウトを最適化する
私は可能な限りオブジェクトのメモリフットプリントを減らす方法を探しています。 POD構造体の場合、構造体のメモリレイアウトをダンプして、メンバーをパックし、コンパイラのパディングを減らす方法を理解します。
クラスインスタンスなどの非PODオブジェクトのメモリレイアウトを把握する方法はありますか? クラスオブジェクトのパッキングに似た何かを達成できますか?私は特定の非PODのことは知らない
おかげで、 ダン
一般的にはコンパイラ固有のフラグとプラグマであり、フィールドの順序を変更すると効果があります。ただし、これはパフォーマンスと相互運用性に影響する可能性があります – sehe
どのコンパイラを使用していますか? –
@dbbd btwなぜ64ビットアーキテクチャでプロセスメモリサイズが心配ですか? 64ビットアーキテクチャは、巨大な仮想メモリサイズをサポートすることができます。 32ビットアーチとは異なり – weima