У меня есть код c встроенным SQL для Oracle через Pro * C.Управление лучшей памятью (кучей) на Solaris 10
Всякий раз, когда я делаю вставку или обновление (ниже данный примера обновления),
update TBL1 set COL1 = :v, . . . where rowid = :v
Для управления сыпучих вставок и обновления, я выделил несколько кусков памяти для вставки в объеме и совершить один раз. Другие распределения памяти тоже происходят по мере необходимости. Как лучше управлять памятью (кучей) для распределения динамической памяти? Один из вариантов заключается в том, чтобы размер кучи настраивался во время соединения GNU. Я использую g ++ версию 2.95, я знаю, что это довольно старая версия, но она должна использовать это для наследия. Поскольку исполняемый файл (работает на Solaris 10), построенный на основе obce, может работать в нескольких производственных средах с различными ресурсами, одноразовый размер для распределения размера кучи может оказаться неприемлемым. В качестве альтернативы нужен какой-то механизм, при котором кучи могут упруго расти по мере необходимости. В отличие от Linux, Solaris, я думаю, не имеет понятия перераспределенной памяти. Таким образом, распределение памяти может потерпеть неудачу с помощью ENOMEM, если осталось больше свободного места. Что может быть лучшей стратегией, чтобы знать, что мы можем пересечь уровень опасности, и теперь мы должны либо освободить куски, которые мы храним, если они выполняются с использованием или передачей блоков памяти в Oracle DB, если они все еще не загружены и, наконец, DEALLOCATE. Любая стратегия, которую вы могли бы предложить?
Это форум для обсуждения. Если у вас есть ** конкретный вопрос с кодом, отправьте сообщение [mcve]. И выберите один язык. нет языка C/C++; это два разных языка. – Olaf
Спасибо @Olaf, отредактировал мой qs –
Вы всегда можете создать свой собственный распределитель памяти - это может быть не самое простое решение, но оно наиболее настраиваемое. Если вам интересно, у IBM есть достойный учебник [здесь] (http://www.ibm.com/developerworks/aix/tutorials/au-memorymanager/). – tonysdg