【发布时间】:2009-03-24 10:22:53
【问题描述】:
我们有一个从 XML 导入对象的应用程序。 XML 大约为 15 GB。应用程序总是开始耗尽内存。我们试图在操作之间释放内存,但这会导致性能下降。即完成导入操作需要更多时间。 CPU利用率达到100%
应用程序是用 C++ 编写的。
频繁调用free()会导致性能问题吗?
来自 OP 的评论:expat 中使用的解析器,这是一个 SAX 解析器,占用空间非常小,可自定义内存管理。
【问题讨论】:
-
您使用的是哪个解析器.. MSXML?
-
这是一个 15GB 的 XML 文件吗?您期望生成的对象使用多少空间?您是导入所有对象还是仅导入一个选择?您在 64 位平台上吗?
-
是的,我在 64 位平台上。它是一个 15 GB 的文件
-
您需要向我们提供有关您的应用程序架构的更多详细信息 - 例如,您使用什么数据结构?
标签: c++ xml memory memory-management