【发布时间】:2009-03-16 07:07:46
【问题描述】:
我有 2 GB 的 RAM。我们有一个执行导出/导入操作的应用程序。 我们有一个递归函数,它有一个 Set 类型的局部变量,每次迭代都会不断填充。这个 Set 不断增长,有时我们会耗尽内存。
是否有任何替代数据结构可以优化使用内存?
这是粗略的代码
GetObjectsForExportImpl(long lExportOptions, __int64 numIdProject, XExportSets
&exportSets, long lClientId, CComPtr<IEPIPDServer> ptrIPDServer,FILE *fp)
{
XExportSets exportLocal; //Thats a structure containing the Set
QueryObjectsForExport(lExportOptions, numIdProject, exportLocal,
lClientId, ptrIPDServer);
SetIDs::iterator it = exportLocal.setShared.begin();
for (; it != exportLocal.setShared.end(); ++it)
{
//recursive call
pExportObject->GetObjectsForExportImpl(lExportOptions,
numIdProject, exportSets, lClientId, ptrIPDServer,fp);
}
}
【问题讨论】:
-
您能更具体地介绍一下您的算法吗?粗略描述一下你对集合做了什么以及算法如何递归。