I'd like to add another fact...
i've have seen a similar problem also with lists:
If i create a list of pairs of numbers with Table, during the computation, the RAM occupation grow from "zero" to about 750 MB; when i export the file (in .mx format) the occupation of RAM does not increase (as i aspect...) and the output file is about 500 MB.
This looks good.
Now, i have a text file with a pair of numbers in each row and i import it line by line with ReadList.
The text file size is about 1 GB. When it finishes to import it the RAM occupation is about 3 GB!
That's not all, because if i export it, during the export process, the RAM occupation increase to about 15 GB, and when it finishes exporting it the RAM occupation is about 4 GB...
That is strange...
If i do a Quit and reimport the data, the RAM occupation is again 3 times the size of data.
If i apply the ByteCount function it give me the same size of RAM.
But if i apply the ByteCount to one element of each list, the size of the element created by the Table is a little smaller than the other, but when i take a bub-list of more than two elements the size of the Table list is much smaller than the other...
Another thing... If i apply FullForm, the two list have the same structure and the function ByteCount to each number of the two lists give the same size (16 byte).
Have you an idea what could be the difference between the two cases? How can i solve this issue?