メモリ使用量 - 予想通りメモリ使用量を減少させなかったdoubleからfloatへの変換
template<class T>
struct node
{
//some functions
private:
T m_data_1;
T m_data_2;
T m_data_3;
node* m_parent_1;
node* m_parent_2;
node* m_child;
}
テンプレートの目的は、ユーザーを有効にするためにあるのですクラスの何百万を初期化しています
float
またはdouble
の精度を選択すると、node<float>
のメモリ容量が少なくなります。
しかし、double
からfloat
に切り替えると、私のプログラムのメモリフットプリントは期待通りに減少しません。私は2つの質問、
はそれが可能コンパイラ/オペレーティング・システムは私の山車のために必要以上のスペースを確保する(あるいはdoubleとしてそれらを格納)されていることであるがあります。もしそうなら、どうやってこれを止めるのですか?64ビットマシンでlinuxをg ++で使っています。
すべての異なるクラスで使用されているメモリ量を判断できるツールはありますか? (すなわち、何らかの種類のメモリプロファイリング) - 私が考えていない他の場所でメモリが詰まっていないことを確認する。
sizeofノードを使用してください。つまり、sizeofノード、sizeofノードです。 –
QuentinUK