事前に割り当てられたメモリに文字列の分割を保存しているときに、すべての行を (同じ変数に) 読み込むと、メモリが直線的に増加していることをシステム モニターが示している理由がわかりません。
// pre-allocate
int rows = 100000;
int columns = 300;
QVector<QString> matrix_row;
matrix_row.resize(rows);
QVector< QVector<QString> > matrix;
matrix.resize(num_columns);
qFill(matrix.begin(), matrix.end(), matrix_row);
int current_row = 0;
while(!filestream.atEnd())
{
QString line = filestream.readLine();
for (int i = 0; i < num_columns; i++)
{
matrix[i][current_row] = line.left(end[i]).right(grom[i]);
}
++current_row;
}
スピードが気になるので、何かがおかしいのではないかと思っています。
初期割り当ての約 26% で開始し、8 GB の RAM の約 65% で終了します。
何が間違っている可能性がありますか?