1
我已經使用QDataStream序列化了一個地圖並將該對象寫入了一個文件。反序列化的地圖的大小在qt中增加C++
當我反序列化它並將地圖加載到內存中時,序列化的文件大小爲1.5mb,內存消耗爲300mb。我使用了相同的QDataStream進行反序列化。
您能否告訴我爲什麼寫入磁盤上的文件的1.5mb序列化對象的反序列化在內存中花費300mb的原因。
連載:
QMap< QString, QSet<QString> > myMap[100];
QSet<QString> mySet; // Assume it has some data in it.
QSet<QString> mySet1; // Assume it has some data in it.
MyMap.insert("a", mySet);
MyMap.insert("b", mySet1);
QFile f(strOutFile);
f.open(QIODevice::WriteOnly);
QDataStream streamOut(&f);
streamOut << myMap;
反序列化:
QFile f(StrInFile);
QMap< QString, QSet<QString> > InMap[100];
QDataStream streamIn(f, QIODevice::ReadOnly);
streamIn >> InMap[index];
我一直在使用MEMORYSTATUSEX Windows庫檢查了內存消耗。 反序列化後,消耗的內存爲300 MB。
感謝您的幫助。
什麼問題?你可以創建一個簡單的應用程序,重現問題? – Ezee 2014-10-10 09:59:04
你如何測量內存消耗? – UmNyobe 2014-10-10 10:06:59
我已更新該問題。謝謝! – aditya 2014-10-10 11:12:19