Ich habe einen RAM von 2 GB. Wir haben eine Anwendung, die Export- / Importoperationen durchführt. Wir haben eine rekursive Funktion, die eine lokale Variable vom Typ Set hat, die bei jeder Iteration kontinuierlich gefüllt wird. Dieses Set wächst ständig und irgendwann haben wir keinen Speicher mehr.
Gibt es eine alternative Datenstruktur, die den Speicher optimal nutzen kann?
Hier ist der grobe Code
GetObjectsForExportImpl(long lExportOptions, __int64 numIdProject, XExportSets
&exportSets, long lClientId, CComPtr ptrIPDServer,FILE *fp)
{
XExportSets exportLocal; //Das ist eine Struktur, die das Set enthält
QueryObjectsForExport(lExportOptions, numIdProject, exportLocal,
lClientId, ptrIPDServer);
SetIDs::iterator it = exportLocal.setShared.begin();
for (; it != exportLocal.setShared.end(); ++it)
{
//rekursiver Aufruf
pExportObject->GetObjectsForExportImpl(lExportOptions,
numIdProject, exportSets, lClientId, ptrIPDServer,fp);
}
}