Russian Qt Forum
Ноябрь 24, 2024, 04:38 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Утечка в QWebPage?  (Прочитано 4064 раз)
kirill
Гость
« : Май 05, 2009, 14:47 »

Есть программа - каждую минуту обращается по некому url и анализирует полученный текст.
Через QWebPage.
Так вот размер программы в памяти при старте 20 мб. Через час на 1 мб больше. Через 10 программа в памяти занимает уже 40 мб.
Течь памяти неоткуда кроме как через QWebPage.
Пробовал задать ему максимальное количество кешированных страниц - не помогает.
Код
C++ (Qt)
m_webpage->settings()->setMaximumPagesInCache(1);

Вкратце код программы:
В Диалоге
Код
C++ (Qt)
MainWindow::MainWindow(QWidget * parent, Qt::WindowFlags f) : QDialog(parent, f)
{
...
  m_webpage = new QWebPage(this);
  m_webpage->settings()->setMaximumPagesInCache(1);
  connect(m_webpage, SIGNAL(loadFinished(bool)), this, SLOT(pageLoaded(bool)));
...
}

Таймер
Код
C++ (Qt)
void MainWindow::timerEvent ( QTimerEvent * event )
{
  m_webpage->mainFrame()->setContent(QByteArray());
  m_webpage->mainFrame()->load(QUrl(m_address));  
}
 

Загрузились
Код
C++ (Qt)
void MainWindow::pageLoaded(bool ok)
{
  if (!ok)
     return;
  QString code = m_webpage->mainFrame()->toHtml();
   ...
  //обработка кода
  ...
}
 

Никто не сталкивался в чем тут дело?
Записан
pastor
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 2901



Просмотр профиля WWW
« Ответ #1 : Май 05, 2009, 15:14 »

Запускай под Valgrind и смотри где течет память
Записан

Integrated Computer Solutions, Inc. (ICS)
http://www.ics.com/
sendevent
Гость
« Ответ #2 : Май 05, 2009, 15:55 »

Тоже недавно обратил внимание - явно прослеживается связь с размером полученных данных (при загрузке example.com утекает меньше, чем при загрузке мылору, например).
В браузере из демо - похожая ситуация: при периодическом рефреше одного и того же документа появляется расход, который уходит после минимизации окна (эт под виндовз).
Пытался смотреть волгриндом, по его мнению - тысячи их, ошибок в кьют... (это уже вроде обсуждалось, но как выудить полезную информацию - пока не разобрался В замешательстве)
qt 4.5.0 os
Записан
IMPOMEZIA
Гость
« Ответ #3 : Май 05, 2009, 16:35 »

248414
Записан
kirill
Гость
« Ответ #4 : Май 06, 2009, 08:18 »

Вот засада.
Чо теперь придется в таймере создавать и удалять объект QWebPage?
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.116 секунд. Запросов: 22.