プロセス コア ダンプをデバッグしていますが、設計を変更したいと考えています。C++ プロセスは、eSQL/C を使用して Informix データベースに接続します。
現在、アプリケーションは、データベースから 2lacs を超える行をフェッチするクエリを使用しています。行ごとにnew
、結果を使用して動的メモリを作成し、処理します。Out of memory
おそらく固有のメモリリークが原因で、エラーが発生することがあります。
データベースから一度に 500 行だけクエリを実行し、動的メモリを割り当てて処理するオプションを考えています。割り当てが解除されたら、次の 500 などをロードします。ただし、これにより、一度に必要な動的メモリが減少しても、DB クエリの数が増加します。
したがって、私の質問は、このオプションがスケーラブルなソリューションであるかどうかです。DB 呼び出しが増えるとアプリケーションのスケーラビリティが低下するかどうか。