Я закончил запись в файл кусками периодически следующим образом:
for(unsigned int j = 0; j < Count; ++j) {
// Fill out QByteArray my_ba in every single iteration of the loop
// ...
// But write my_ba only periodically and then clear it!
// period is picked in such a way that writing to file will be done for every 1MB of data
if( j % period == 0){
if(file){
file->write(my_ba);
file->flush();
my_ba.clear();
}
}
// ...
}
Я периодически очищаю свой QByteArray
, выполняя my_ba.clear()
после записи его содержимого в файл, поэтомумой QByteArray
никогда не станет большим, и его потребление памяти , следовательно, уменьшится.