LINUX.ORG.RU
ФорумTalks

Qt3 vs Qt4 (продожение)


0

0

Начало вопроса здесь.

http://www.linux.org.ru/view-message.jsp?msgid=2655553

Кратко суть: у некоторых товарищей данный код жрёт проц до 10%.

for(int i = 0; i < 10; ++i)
{
QTimer *timer = new QTimer(this);
timer->start(30+i);
}

После совещания с товарищами на http://prog.org.ru удалось найти временное решение данной проблемы: это присвоить переменной QT_NO_GLIB любое значение. Подробнее о назначении этой опции написано здесь: http://qtnode.net/wiki?title=GLib_Event_Loop

Ну и официальный ответ представителя троллтехов:

The Valgrind output did not indicate to me that Qt was doing anything
wrong here. It seems like almost all (~89%) of the time is spent inside
the g_main_context_iterate().

Even so, I was still unable to reproduce the 10% CPU load on any of the
machines I tried, even a single core 1.8 GHz Pentium M laptop.

I'm afraid there is nothing else we can do here. If you do not want the
performance hit on your computer, I suggest disabling GLib.

Regards,

--
Jason Barron, Support Engineer
Trolltech ASA, Oslo - http://www.trolltech.com


От себя замечу: обновил glibc и ядро, однако проблема осталась :(

anonymous

А самому прогнать всё под профайлером и выхлоп профайлера приаттачить к багрепорту?

INFOMAN ★★★★★
()

>От себя замечу: обновил glibc и ядро, однако проблема осталась :(

тебе же с большой буквы написали - GLib, а не glibc, дубина!

anonymous
()
Ответ на: комментарий от INFOMAN

> А самому прогнать всё под профайлером и выхлоп профайлера приаттачить к багрепорту?

А что я по твоему делал?

anonymous
()

Я им сразу говорил, что glib - неумелая поделка, ужо хлебнут они с нею горюшка.

anonymous
()
Ответ на: комментарий от anonymous

> тебе же с большой буквы написали - GLib, а не glibc, дубина!

urpmq -r libglib2.0_0
libglib2.0_0-2.16.2-1mdv2008.0|libglib2.0_0-2.14.1-2mdv2008.0

иногда лучше жевать...

anonymous
()
Ответ на: комментарий от golodranez

вот только причём сдесь glibc?

# ldd libglib-2.0.so.0
linux-gate.so.1 => (0xffffe000)
libpcre.so.0 => /lib/libpcre.so.0 (0xb7e08000)
libc.so.6 => /lib/i686/libc.so.6 (0xb7cc4000)
/lib/ld-linux.so.2 (0x80000000)

anonymous
()

А вот нехер event loop от всяких пионерских поделок поддерживать :)

gaa ★★
()

Попробовал обносить glib до 2.16.3 — воз и ныне там.

anonymous
()
Ответ на: комментарий от anonymous

Я не знаю что у тебя там в дистре, но вообщето glib и glibc это разные вещи:)

glib - a library of handy utility functions

glibc - GNU C library

Погугли если не знаешь. А теперь расскажи мне, при чём сдесь glibc? :)

golodranez ★★★★
()
Ответ на: комментарий от golodranez

> Я не знаю что у тебя там в дистре, но вообщето glib и glibc это разные вещи:)

А кто сказал, что одинаковые? Я это где-то утверждал?

anonymous
()

без QT_NO_GLIB:

31120 andrey    20   0 18072 5336 4700 R  1.3  2.1   0:01.25 dummy-qt

c QT_NO_GLIB:

31126 andrey    20   0 18072 5340 4700 S  1.3  2.1   0:00.83 dummy-qt

не вижу разницы и обещанных 10%, фуррифокс и иксы жрут больше

2.6.24.4, гента, селерон, 32бита, 2.5 ГГц, 128К кеша

generatorglukoff ★★
()
Ответ на: комментарий от generatorglukoff

В том то вся и фигня, что у кого-то всё работает нормально, у кого-то жрёт почём зря. Товарищ из троллтехов тоже не смог воспроизвести. Мне жалобы поступили ещё летом. Но тогда у меня был cel 1100 с мандривой 2007.1 и такого тоже не наблюдалось. А вот сейчас на E2160 вылезает такая хрень:

без QT_NO_GLIB:

10575 user 20 0 18832 6400 5512 R 15 0.6 0:03.71 test_qt

c QT_NO_GLIB:

10617 user 20 0 18820 6196 5324 S 0 0.6 0:00.07 test_qt

Конечно, я сразу обновил glib. А уж потом начал тупо обновлять всё, от чего этот glib зависит, т.е. ядро и glibc. Но толку 0. Осталось только обновить gcc и попробовать на другой машине. Может удастся выявить какую закономерность...

anonymous
()
Ответ на: комментарий от anonymous

>Может удастся выявить какую закономерность...

гм, gcc version 4.1.1 (Gentoo 4.1.1-r3), glib-2.14.6, CFLAGS="-Os -march=pentium4 -pipe"

кстати, отладочные сообщения в glib включены или нет? у меня - нет

еще есть вариант тупо сравнить бинари glib =)

ftp://generatorglukoff.org.ua/pub/glib.tar.bz2 (810K)

это из /usr/lib для glib-1.2.10-r5 и glib-2.14.6

generatorglukoff ★★
()
Ответ на: комментарий от generatorglukoff

Попробовал заменить имеющиеся файлы. Проблема осталась. Следовательно дело не в флагах. Пока грешу на мандрячников. Может в ядре что накасячили. Попробую собрать ванильное разными компиляторами.

anonymous
()
Ответ на: комментарий от generatorglukoff

глупый вопрос: USE флаг glib для Qt4 выставлен? :)

adarovsky ★★★★
()
Ответ на: комментарий от anonymous

Почитал топик -- жесть! Пересоберите QT без поддержки glib.

Lumi ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.