У меня есть простой код QT, который вызывается очень часто.Он должен обработать некоторые данные и затем отформатировать их в QString
, который отправляется объекту QwtText
.Сейчас функция каждый раз создает объект QString
со всей работой по динамическому распределению памяти.Затем этот объект уничтожается и память освобождается после выполнения функции.
Я пытаюсь оптимизировать код, создав локальную переменную класса QString
, которая будет содержать эту отформатированную строку.Идея состоит в том, чтобы предотвратить повторные вызовы malloc/free
.Однако сразу после первого назначения строки оказывается, что объект QString
освобождает и снова выделяет память, судя по числу, возвращаемому int QString::capacity()
link .
m_valuesLabelText.clear();
// Capacity is 1011
m_valuesLabelText += "<table width=50>";
// Capacity is 16
IsЕсть ли способ предотвратить такое перераспределение и убедить QString
повторно использовать старый буфер?
Спасибо.