我正在调试一个进程核心转储,我想做一个设计更改。C++ 进程使用 eSQL/C 连接到 informix 数据库。
目前,该应用程序使用从数据库中获取超过 2lacs 行的查询。new
对于每一行,它使用并处理结果创建动态内存。它有时会导致Out of memory
错误,可能是由于固有的内存泄漏。
我正在考虑一个选项,我一次只能从数据库中查询 500 行,分配动态内存并处理它。一旦它被取消分配,然后加载下一个 500,依此类推。但这会增加数据库查询的数量,即使一次所需的动态内存减少了。
所以我的问题是这个选项是否是一个可扩展的解决方案。更多的数据库调用是否会使应用程序的可扩展性降低?