Название: QTimer и использование процессора Отправлено: trialuser от Апрель 12, 2008, 16:18 Получился довольно интересный результат. Это кусок кода создаёт 10 таймеров с интервалом в 1 мс. И самое главное, использование процессора в Qt3 примерно в 10 раз меньше чем в Qt4. Похоже, троллтехи опять где-то накасячили. У кого есть мысли по этому поводу, попрошу высказаться и проверить.
Информация о системе: uname -a Linux localhost 2.6.24.3-desktop-2mdv #1 SMP Tue Mar 4 17:21:53 MSK 2008 i686 Intel(R) Pentium(R) Dual CPU E2160 @ 1.80GHz GNU/Linux версии Qt: 3.3.8 и 4.3.4 соответственно. for(int i = 0; i < 10; ++i) { QTimer *timer = new QTimer(this); timer->start(30+i); } Название: Re: QTimer и использование процессора Отправлено: Mikhail от Апрель 12, 2008, 18:38 Получился довольно интересный результат. Это кусок кода создаёт 10 таймеров с интервалом в 1 мс. И самое главное, использование процессора в Qt3 примерно в 10 раз меньше чем в Qt4. Похоже, троллтехи опять где-то накасячили. У кого есть мысли по этому поводу, попрошу высказаться и проверить. Информация о системе: uname -a Linux localhost 2.6.24.3-desktop-2mdv #1 SMP Tue Mar 4 17:21:53 MSK 2008 i686 Intel(R) Pentium(R) Dual CPU E2160 @ 1.80GHz GNU/Linux версии Qt: 3.3.8 и 4.3.4 соответственно. for(int i = 0; i < 10; ++i) { QTimer *timer = new QTimer(this); timer->start(30+i); } Это попытка удовлетворить свою любознательность? Какая может быть нужда в 10 таймерах? Может лучше 1000 запустить? Название: Re: QTimer и использование процессора Отправлено: trialuser от Апрель 12, 2008, 19:10 Причём тут 1000 таймеров? Я привёл пример немного утрированный, да 10 таймеров - это не так уже и много. На самом деле у меня в программе 4 таймера и пользователи жалуются на использование процессора. Особенно заметно на слабых машинах. Например на duron 800 3-и таймера потребляют 40%. Причём та же программа но собранная с qt3 потребляет около 1-2%
Название: Re: QTimer и использование процессора Отправлено: ритт от Апрель 12, 2008, 19:35 собрал твой пример - ничего подозрительного не вижу
создал 1000 таймеров - нагрузка 4% на протяжении ~0.1с ищи тараканов в своём коде Название: Re: QTimer и использование процессора Отправлено: trialuser от Апрель 12, 2008, 20:24 собрал твой пример - ничего подозрительного не вижу создал 1000 таймеров - нагрузка 4% на протяжении ~0.1с ищи тараканов в своём коде Ну и какие тут быть тараканы в 5 строчках кода? Лучше напиши свои версии gcc, glibc, kernel. Может быть удастся выявить закономерность... Название: Re: QTimer и использование процессора Отправлено: Sergey B. от Апрель 12, 2008, 21:46 как вариант, собирал с GLIB event loop GLIB event loop (http://qtnode.net/wiki?title=GLib_Event_Loop)?
Название: Re: QTimer и использование процессора Отправлено: ритт от Апрель 12, 2008, 22:03 Ну и какие тут быть тараканы в 5 строчках кода? Лучше напиши свои версии gcc, glibc, kernel. Может быть удастся выявить закономерность... я имел в виду - не в этих пяти строчках кода, а в тех, что используют таймеры тестил под вендой. линуха сейчас недоступна Название: Re: QTimer и использование процессора Отправлено: trialuser от Апрель 12, 2008, 22:58 как вариант, собирал с GLIB event loop GLIB event loop (http://qtnode.net/wiki?title=GLib_Event_Loop)? А вот это уже интересно. Qt собрана с glib, т.к. этот glib есть в зависимостях. А вот если его отключить (export QT_NO_GLIB=1), то использование процессора заметно снижается. Так что в качестве временного решения сойдёт. Потом попробую его обновить. Спасибо за подсказку. |