crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

> Увеличение потребляемых ресурсов, Проблема с памятью
Thelearning
  опции профиля:
сообщение 11.3.2011, 23:58
Сообщение #1


Новичок


Группа: Новичок
Сообщений: 5
Регистрация: 27.2.2011
Пользователь №: 2453

Спасибо сказали: 0 раз(а)




Репутация:   0  


Всем доброго времени суток!
Сразу оговорюсь C++ плотно не изучал, но появилась необходимость в изучении Qt4. Читаю книгу Макса Шлее "Qt 4.5 Профессиональное программирование на C++".
В книге есть пример с LCD индикатором и полосой прокрутки. Я добавил туда еще и прогрессбар.

Вопрос в следующем: при запуске программки, она потребляет определенное количество оперативной памяти, когда пользователь (в данном случае я) двигает ползунок, количество потребляемых ресурсов увеличивается, но при прекращении действий, не уменьшается. Таким образом если двигать ползунок долго и упорно, выделяемая на процесс память так же увеличивается постоянно и не уменьшается. :blink: Так и должно быть?? Получается, что со временем этот виджет будет кушать все больше и больше. Как это исправить??

Заранее спасибо! )))

Вот код:

#include <QtGui>

int main (int argc, char** argv)
{
    QApplication app(argc,argv);
    QWidget wgt;
    QLCDNumber* plcd = new QLCDNumber(4);
    QScrollBar* phsb = new QScrollBar(Qt::Horizontal);
    phsb->setRange(0,100);
    QProgressBar* prgb = new QProgressBar();

    QObject::connect(phsb, SIGNAL(valueChanged(int)),
                     plcd, SLOT(display(int)));
    QObject::connect(phsb, SIGNAL(valueChanged(int)),
                     prgb, SLOT(setValue(int)));

    QVBoxLayout* layout = new QVBoxLayout;
    layout->addWidget(plcd);
    layout->addWidget(prgb);
    layout->addWidget(phsb);
    wgt.setLayout(layout);

    wgt.resize(250,150);
    wgt.show();

    return app.exec();
}

Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
abc
  опции профиля:
сообщение 12.3.2011, 12:57
Сообщение #2


Участник
**

Группа: Участник
Сообщений: 221
Регистрация: 16.12.2010
Из: СПб
Пользователь №: 2272

Спасибо сказали: 26 раз(а)




Репутация:   4  


запустил твою прогу. я бы сказал, что ты преувеличиваешь. Да, память забирает поначалу, но если подвигать окно по экрану, это тоже память подберёт. Ну, увеличилась она на 300 кб или типа того.. дальше не потребляется. думаю, всё в норме

ещё добавлю, что где-то (тут, может быть) читал, что диспетчеры показывают не ту инфу о памяти, которую ты ожидаешь... Ты думаешь, что каждый твой delete они должны отразить, а на самом деле память освободилась, а они этого не покажут.. вроде как для твоего процесса память освободилась, а ОС её не забрала за ненадобностью, вот ты и получаешь не ожидаемые данные... Прошу заметить, что это "из уст в уста")

Сообщение отредактировал abc - 12.3.2011, 13:12
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме


Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


5 чел. читают эту тему (гостей: 5, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 1.12.2024, 7:53