
Originally Posted by
GSS
I'll give a try to the the QtConcurrent.
No point in doing that, QtConcurrent is for parallelizing multiple tasks, you only have one task.

Originally Posted by
Lesiok
As I see You don't reset map2. So after next line map2 contains all lines from begin to current.
I think that first line in whie loop should be :
map2.clear();
map2.clear();
To copy to clipboard, switch view to plain text mode
No, every loop iteration is a single record.
The loop needs to work with map3 and only with map3.
Something like
map3[list1[0].insertMulti(list1[1], list1[2]);
map3[list1[0].insertMulti(list1[1], list1[2]);
To copy to clipboard, switch view to plain text mode
i.e. retrieve or create the inner map for key "list1[0]" then insert the current inner pair, allowing multiple values for key "list1[1]"
Since the result is written back into files again, one could probably even avoid the encoding and decoding and just work with QByteArray instead of QString.
Is the machine's physical RAM large enough to do that without swapping?
Such a long time sounds like as if the machine started swapping.
Cheers,
_
Bookmarks