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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Утечка в Qt  (Прочитано 3137 раз)
UVV
Гость
« : Январь 10, 2011, 12:33 »

У кого-нибудь такое есть?
Цитировать
==30266== 120 bytes in 1 blocks are definitely lost in loss record 891 of 1,268
==30266==    at 0x4C9C082: operator new(unsigned int) (vg_replace_malloc.c:214)
==30266==    by 0xA1E91DC: getEngineData(QFontPrivate const*, QFontCache::Key const&) (qfontdatabase.cpp:1002)
==30266==    by 0xA1EE6C0: QFontDatabase::load(QFontPrivate const*, int) (qfontdatabase_x11.cpp:1915)
==30266==    by 0xA1C7817: QFontPrivate::engineForScript(int) const (qfont.cpp:270)
==30266==    by 0xA1E387F: QFontMetrics::height() const (qfontmetrics.cpp:329)
==30266==    by 0x8114BDE: HexViewModel::headerData(int, Qt::Orientation, int) const (hexviewmodel.cpp:235)
==30266==    by 0xA5D2B30: QHeaderView::sectionSizeFromContents(int) const (qheaderview.cpp:2544)
==30266==    by 0xA5CC058: QHeaderView::sizeHint() const (qheaderview.cpp:536)
==30266==    by 0xA5F610F: QTableView::updateGeometries() (qtableview.cpp:2024)
==30266==    by 0xA5F5F2F: QTableView::columnCountChanged(int, int) (qtableview.cpp:1999)
==30266==    by 0xA5FAE0E: QTableView::qt_metacall(QMetaObject::Call, int, void**) (moc_qtableview.cpp:140)

Qt 4.7.1, Linux x86
Записан
brankovic
Гость
« Ответ #1 : Январь 10, 2011, 13:22 »

На позапрошлой работе был qt 3, на него тоже валгринд ругался. Коллеги-кутишники утверждали, что это нормально и утечка однократная. Попробуйте много раз повторить сигнал и посмотрите увеличится ли утечка.
Записан
UVV
Гость
« Ответ #2 : Январь 10, 2011, 13:32 »

Да, вы правы, утечка не увеличивается.
Записан
merke
Гость
« Ответ #3 : Январь 10, 2011, 13:56 »

Цитировать
==30266== 120 bytes in 1 blocks are definitely lost in loss record 891 of 1,268
==30266==    at 0x4C9C082: operator new(unsigned int) (vg_replace_malloc.c:214)
==30266==    by 0xA1E91DC: getEngineData(QFontPrivate const*, QFontCache::Key const&) (qfontdatabase.cpp:1002)
==30266==    by 0xA1EE6C0: QFontDatabase::load(QFontPrivate const*, int) (qfontdatabase_x11.cpp:1915)
==30266==    by 0xA1C7817: QFontPrivate::engineForScript(int) const (qfont.cpp:270)
==30266==    by 0xA1E387F: QFontMetrics::height() const (qfontmetrics.cpp:329)
==30266==    by 0x8114BDE: HexViewModel::headerData(int, Qt::Orientation, int) const (hexviewmodel.cpp:235)
==30266==    by 0xA5D2B30: QHeaderView::sectionSizeFromContents(int) const (qheaderview.cpp:2544)
==30266==    by 0xA5CC058: QHeaderView::sizeHint() const (qheaderview.cpp:536)
==30266==    by 0xA5F610F: QTableView::updateGeometries() (qtableview.cpp:2024)
==30266==    by 0xA5F5F2F: QTableView::columnCountChanged(int, int) (qtableview.cpp:1999)
==30266==    by 0xA5FAE0E: QTableView::qt_metacall(QMetaObject::Call, int, void**) (moc_qtableview.cpp:140)

Объясните новичку, как вы здесь увидели утечку? Не ругайтесь - я только учусь) Подмигивающий
Записан
ufna
Гость
« Ответ #4 : Январь 10, 2011, 13:58 »

В самой первой строчке? Улыбающийся
Записан
fuCtor
Гость
« Ответ #5 : Январь 12, 2011, 18:42 »

У кого-нибудь такое есть?
Цитировать
==30266== 120 bytes in 1 blocks are definitely lost in loss record 891 of 1,268
==30266==    at 0x4C9C082: operator new(unsigned int) (vg_replace_malloc.c:214)
==30266==    by 0xA1E91DC: getEngineData(QFontPrivate const*, QFontCache::Key const&) (qfontdatabase.cpp:1002)
==30266==    by 0xA1EE6C0: QFontDatabase::load(QFontPrivate const*, int) (qfontdatabase_x11.cpp:1915)
==30266==    by 0xA1C7817: QFontPrivate::engineForScript(int) const (qfont.cpp:270)
==30266==    by 0xA1E387F: QFontMetrics::height() const (qfontmetrics.cpp:329)
==30266==    by 0x8114BDE: HexViewModel::headerData(int, Qt::Orientation, int) const (hexviewmodel.cpp:235)
==30266==    by 0xA5D2B30: QHeaderView::sectionSizeFromContents(int) const (qheaderview.cpp:2544)
==30266==    by 0xA5CC058: QHeaderView::sizeHint() const (qheaderview.cpp:536)
==30266==    by 0xA5F610F: QTableView::updateGeometries() (qtableview.cpp:2024)
==30266==    by 0xA5F5F2F: QTableView::columnCountChanged(int, int) (qtableview.cpp:1999)
==30266==    by 0xA5FAE0E: QTableView::qt_metacall(QMetaObject::Call, int, void**) (moc_qtableview.cpp:140)

Qt 4.7.1, Linux x86

Шрифтовый кэш заполнился. Веселее когда приходится рисовать тексты, а размер приходится расчитывать. В итоге получаешь приличного такого размера его.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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