Я отлаживаю дамп ядра процесса, и я хотел бы сделать изменение дизайна. Процесс C++ использует eSQL/C для подключения к базе данных informix.Что более дорого - вызов БД или новый звонок?
В настоящее время приложение использует запрос, который извлекает из базы данных более 2lacs строк. Для каждой строки она создает динамическую память с использованием new
и обрабатывает результат. Это приводит к ошибкам Out of memory
, возможно, из-за встроенных утечек памяти.
Я имею в виду вариант, по которому я буду запрашивать только 500 строк из базы данных за раз, распределять динамическую память и обрабатывать ее. Как только он будет выделен, загрузите следующие 500 и так далее. Но это увеличило бы число запросов БД, хотя динамическая память, требуемая одновременно, уменьшилась.
Итак, мой вопрос в том, является ли эта опция масштабируемым решением. Может ли большее количество вызовов БД сделать приложение менее масштабируемым?
Итак, вы хотите «скрыть» «встроенные утечки памяти», изменив свои запросы ??? Устраните проблему, не скрывайте ее ... – Nim
определить, есть ли у вас утечки памяти или нет, и исправить их, если вы это сделаете. Утечки памяти плохо масштабируются. –