anonymous@RULINUX.NET~# Last login: 2024-11-05 15:41:04
Регистрация Вход Новости | Разметка | Пользователи | Галерея | Форум | Статьи | Неподтвержденное | Трекер | Правила форума | F.A.Q. | Ссылки | Поиск
[#] [Добавить метку] [Редактировать]
Скрыть

А почему Qt такое УГ?

Вот решил начать изучать линуксовые тулкиты. От внутренностей gtk сразу проблевался. И с англишом у меня туго, да.

И поэтому решил пойти путём той эльфийки, виртуалом которой я тут являюсь. А именно, начать изучать куйти. Надёргал доков, есть даже хорошие и на русском. Наляпал форму, потыкал мышой по кнопочкам. Ощутил себя гением быдлокодерства. И тут пришла мысль заюзать этот чёртов копро-QTimer.

Нахуярил их аж 5 штук, подключил к лаблам, типа такой вот счётчик таймер получился. С 10-го раза скомпилил, запустил. И что же я вижу, блджад? Это УГ отжирает 80% от моего сверхмощного core duo. ололол! И это УГ кто-то ещё юзает на смартофонах, позор, товариши. Теперь понятно, почему анальный ведроид так быстро всех объебал.

Да, конечно, мну бешено негодует и смотрит на ноклу как на говно. Ололол, дискас.

Алсо, что бы не быть голосовым, вот вам паста взгугленная из под труполора

cpp-qt

#include QTimer
#include QApplication

int main(int argc, char **argv)
{
    QApplication a(argc, argv);
    for(int i = 0; i < 10; ++i) {
        QTimer *timer = new QTimer();
        timer->start(30 + i);
    }
    a.exec();
    return 0;
}

 

Silvy(*) (2011-03-25 22:27:00)

Mozilla/5.0 (X11; U; Linux i686; ru-RU; rv:1.9.2.15) Gecko/20110304 Mandriva Linux/1.9.2.15-69.1mib2010.2 (2010.2) Firefox/3.6.15

[Ответить на это сообщение]
[#] [Добавить метку] [Редактировать] Ответ на: А почему Qt такое УГ? от Silvy 2011-03-25 22:27:00
avatar
Скрыть

Re: А почему Qt такое УГ?

Алсо, пришлось убрать занки < > из #include Но это уже исключительно по причине рукоизжопистого движка, лол.

Silvy(*)(2011-03-25 22:34:08)

Mozilla/5.0 (X11; U; Linux i686; ru-RU; rv:1.9.2.15) Gecko/20110304 Mandriva Linux/1.9.2.15-69.1mib2010.2 (2010.2) Firefox/3.6.15
[#] [Добавить метку] [Редактировать] Ответ на: А почему Qt такое УГ? от Silvy 2011-03-25 22:27:00
avatar
Скрыть

Re: А почему Qt такое УГ?

у таймера стопудово должен быть механизм уменьшения скорости реакции.

это не свойство куты, это общее свойство всех таймеров, делающих что-то по времени.

если ты посмотришь код SDL, то там прямо написано: по умолчанию наш мейнлуп архиотзывчив, и кушает сколько дадут. посылайте принудительно команду wait.

lockywolf(*)(2011-03-25 22:37:19)

Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.2.8) Gecko/20100722 Firefox/3.6.8
[#] [Добавить метку] [Редактировать] Ответ на: А почему Qt такое УГ? от Silvy 2011-03-25 22:27:00
avatar
Скрыть

Re: А почему Qt такое УГ?

А у меня твой код отожрал всего 20% старого одноядерного селерона.

SystemV(*)(2011-03-25 22:41:02)

Emacs-w3m/1.4.414 w3m/0.5.3
[#] [Добавить метку] [Редактировать] Ответ на: Re: А почему Qt такое УГ? от lockywolf 2011-03-25 22:37:19
avatar
Скрыть

Re: А почему Qt такое УГ?

>у таймера стопудово должен быть механизм уменьшения скорости реакции.

Ололол, да не смеши меня. Линукс буквально нашпигован всякими таймерами, лол. Если каждый будет жрать по полпроца, то это пиздец настанет всему в этом мире, блджад. Алсо, отсчитать 30 милисекунд выглядит смешно для проца, у которого одна тактовая за 2 гигагерца.

Ну и как водится, мне непонятно, куда пихать этот wait. Может и правда есть решение для этого кривожопистого куйтэ?

Silvy(*)(2011-03-25 22:44:28)

Mozilla/5.0 (X11; U; Linux i686; ru-RU; rv:1.9.2.15) Gecko/20110304 Mandriva Linux/1.9.2.15-69.1mib2010.2 (2010.2) Firefox/3.6.15
[#] [Добавить метку] [Редактировать] Ответ на: Re: А почему Qt такое УГ? от SystemV 2011-03-25 22:41:02
avatar
Скрыть

Re: А почему Qt такое УГ?

наверное компиляторы чуйствуют мощность процессора O_o

vilfred(*)(2011-03-25 22:46:06)

Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.2.16) Gecko/20110319 Firefox/3.6.16 (.NET CLR 3.5.30729)
[#] [Добавить метку] [Редактировать] Ответ на: Re: А почему Qt такое УГ? от Silvy 2011-03-25 22:44:28
avatar
Скрыть

Re: А почему Qt такое УГ?

Вот такое есть, но оно бесполезно:

 http://bugreports.qt.nokia.com/browse/QTBUG-6541

SystemV(*)(2011-03-25 22:47:46)

Emacs-w3m/1.4.414 w3m/0.5.3
[#] [Добавить метку] [Редактировать] Ответ на: Re: А почему Qt такое УГ? от SystemV 2011-03-25 22:41:02
avatar
Скрыть

Re: А почему Qt такое УГ?

>А у меня твой код отожрал всего 20% старого одноядерного селерона.

И что? Какие-то два таймера полностью сожрали 300 мегагерцовый проц, лол. Да я раньше на таком железе слущал музыку и гонял порно одновременнно. И это не считая запущенный вендоуз.

Алсо, у меня mplayer жрёт 10%. С таймерами точно не сравнить.

Silvy(*)(2011-03-25 22:48:06)

Mozilla/5.0 (X11; U; Linux i686; ru-RU; rv:1.9.2.15) Gecko/20110304 Mandriva Linux/1.9.2.15-69.1mib2010.2 (2010.2) Firefox/3.6.15
[#] [Добавить метку] [Редактировать] Ответ на: Re: А почему Qt такое УГ? от Silvy 2011-03-25 22:48:06
avatar
Скрыть

Re: А почему Qt такое УГ?

>И что? Какие-то два таймера полностью сожрали 300 мегагерцовый проц, лол.
Сделал в цикле i < 50 - получилось 35%. Странный этот qtimer всё-таки.

SystemV(*)(2011-03-25 22:56:45)

Emacs-w3m/1.4.414 w3m/0.5.3
[#] [Добавить метку] [Редактировать] Ответ на: Re: А почему Qt такое УГ? от SystemV 2011-03-25 22:56:45
avatar
Скрыть

Re: А почему Qt такое УГ?

>Сделал в цикле i < 50 - получилось 35%. Странный этот qtimer всё-таки.
А вообще всё правильно, там же интервал растёт, и с ростом интервала нагрузка становится меньше.

SystemV(*)(2011-03-25 23:01:02)

Emacs-w3m/1.4.414 w3m/0.5.3
[#] [Добавить метку] [Редактировать] Ответ на: Re: А почему Qt такое УГ? от SystemV 2011-03-25 22:47:46
avatar
Скрыть

Re: А почему Qt такое УГ?

>Вот такое есть, но оно бесполезно:

Там походу диагноз. Видимо это такое проклятье, видеть истинную причину всего УГ.

Silvy(*)(2011-03-25 23:41:13)

Mozilla/5.0 (X11; U; Linux i686; ru-RU; rv:1.9.2.15) Gecko/20110304 Mandriva Linux/1.9.2.15-69.1mib2010.2 (2010.2) Firefox/3.6.15
[#] [Добавить метку] [Редактировать] Ответ на: А почему Qt такое УГ? от Silvy 2011-03-25 22:27:00
avatar
Скрыть

Re: А почему Qt такое УГ?

А что у тебя происходит? Ты в цикле насоздавал 10 таймеров, которые каждые ~35 миллисек издают сигнал timeout() по которому ничего не делается. Так?

anonymous(*)(2011-03-26 00:25:15)

[#] [Добавить метку] [Редактировать] Ответ на: Re: А почему Qt такое УГ? от anonymous 2011-03-26 00:25:15
avatar
Скрыть

Re: А почему Qt такое УГ?

Если чо, это был намёк на то, что у тебя программе что-то другое жрёт процессор

anonymous(*)(2011-03-26 00:40:25)

[#] [Добавить метку] [Редактировать] Ответ на: Re: А почему Qt такое УГ? от anonymous 2011-03-26 00:25:15
avatar
Скрыть

Re: А почему Qt такое УГ?

>Ты в цикле насоздавал 10 таймеров, которые каждые ~35 миллисек издают сигнал timeout() по которому ничего не делается. Так?

Исходник я для кого выложил?

Silvy(*)(2011-03-26 00:45:16)

Mozilla/5.0 (X11; U; Linux i686; ru-RU; rv:1.9.2.15) Gecko/20110304 Mandriva Linux/1.9.2.15-69.1mib2010.2 (2010.2) Firefox/3.6.15
[#] [Добавить метку] [Редактировать] Ответ на: Re: А почему Qt такое УГ? от anonymous 2011-03-26 00:40:25
avatar
Скрыть

Re: А почему Qt такое УГ?

>Если чо, это был намёк на то, что у тебя программе что-то другое жрёт процессор

Это не у меня, а у ноклы. Есть такой крап, куйтэ называется, лол.

Silvy(*)(2011-03-26 00:46:28)

Mozilla/5.0 (X11; U; Linux i686; ru-RU; rv:1.9.2.15) Gecko/20110304 Mandriva Linux/1.9.2.15-69.1mib2010.2 (2010.2) Firefox/3.6.15
[#] [Добавить метку] [Редактировать] Ответ на: Re: А почему Qt такое УГ? от Silvy 2011-03-26 00:45:16
avatar
Скрыть

Re: А почему Qt такое УГ?

> Исходник я для кого выложил?
Это не ответ на мой вопрос.

Создай 1 (один) таймер в цикле - какой будет результат?

anonymous(*)(2011-03-26 01:02:50)

[#] [Добавить метку] [Редактировать] Ответ на: Re: А почему Qt такое УГ? от anonymous 2011-03-26 01:02:50
avatar
Скрыть

Re: А почему Qt такое УГ?

А-а, я кажется понял. Замени

timer->start(30 + i);

на

timer->start(30);

anonymous(*)(2011-03-26 01:10:47)

[#] [Добавить метку] [Редактировать] Ответ на: Re: А почему Qt такое УГ? от anonymous 2011-03-26 01:10:47
avatar
Скрыть

Re: А почему Qt такое УГ?

>А-а, я кажется понял. Замени

Ты открыл для себя оптимизацию, лол. Ёжику понятно, что в недрах куйти создаётся один таймер, если всем им указать один таймоут, блджад.

Silvy(*)(2011-03-26 01:14:19)

Mozilla/5.0 (X11; U; Linux i686; ru-RU; rv:1.9.2.15) Gecko/20110304 Mandriva Linux/1.9.2.15-69.1mib2010.2 (2010.2) Firefox/3.6.15
[#] [Добавить метку] [Редактировать] Ответ на: Re: А почему Qt такое УГ? от Silvy 2011-03-26 01:14:19
avatar
Скрыть

Re: А почему Qt такое УГ?

Молодец. Теперь сосредоточься и развей свою мысль на случай с десятью таймерами с учётом проблемы на которую тебя посылал SystemV

anonymous(*)(2011-03-26 01:18:22)

[#] [Добавить метку] [Редактировать] Ответ на: Re: А почему Qt такое УГ? от anonymous 2011-03-26 01:18:22
avatar
Скрыть

Re: А почему Qt такое УГ?

>Молодец. Теперь сосредоточься и развей свою мысль на случай с десятью таймерами с учётом проблемы на которую тебя посылал SystemV

И что ты хочешь сказать? 10 таймеров жрут полпроца и это нормально? Тут явно доктор нужен.

Silvy(*)(2011-03-26 01:21:24)

Mozilla/5.0 (X11; U; Linux i686; ru-RU; rv:1.9.2.15) Gecko/20110304 Mandriva Linux/1.9.2.15-69.1mib2010.2 (2010.2) Firefox/3.6.15
[#] [Добавить метку] [Редактировать] Ответ на: А почему Qt такое УГ? от Silvy 2011-03-25 22:27:00
avatar
Скрыть

Re: А почему Qt такое УГ?

блондин не осилил ничего, да? можно еще wx попробовать.

null(*)(2011-03-26 01:27:25)

Mozilla/5.0 (X11; Linux x86_64; rv:2.0) Gecko/20100101 Firefox/4.0
[#] [Добавить метку] [Редактировать] Ответ на: Re: А почему Qt такое УГ? от Silvy 2011-03-26 01:21:24
avatar
Скрыть

Re: А почему Qt такое УГ?

> И что ты хочешь сказать?
А как ты думаешь?

> 10 таймеров жрут полпроца и это нормально?
А соображать чо ты делаешь когда на кнопки давишь - это ненормально?

Ну так ты бы ещё написал вместо того цикла вот такой:

for(int i = 0; i < 10;);

И создавай потом треды: а почему буква "i" такое УГ!?

anonymous(*)(2011-03-26 01:28:09)

[#] [Добавить метку] [Редактировать] Ответ на: Re: А почему Qt такое УГ? от null 2011-03-26 01:27:25
avatar
Скрыть

Re: А почему Qt такое УГ?

>блондин не осилил ничего, да? можно еще wx попробовать.

Я просто не вижу смысла осиливать сей крап.

Silvy(*)(2011-03-26 01:30:37)

Mozilla/5.0 (X11; U; Linux i686; ru-RU; rv:1.9.2.15) Gecko/20110304 Mandriva Linux/1.9.2.15-69.1mib2010.2 (2010.2) Firefox/3.6.15
[#] [Добавить метку] [Редактировать] Ответ на: Re: А почему Qt такое УГ? от anonymous 2011-03-26 01:28:09
avatar
Скрыть

Re: А почему Qt такое УГ?

>А как ты думаешь?

Я думаю, что ты слишком толст.

>Ну так ты бы ещё написал вместо того цикла вот такой: for(int i = 0; i < 10;);

Тогда while(1); Быдлокод тут не катит, да.

Silvy(*)(2011-03-26 01:39:13)

Mozilla/5.0 (X11; U; Linux i686; ru-RU; rv:1.9.2.15) Gecko/20110304 Mandriva Linux/1.9.2.15-69.1mib2010.2 (2010.2) Firefox/3.6.15
[#] [Добавить метку] [Редактировать] Ответ на: Re: А почему Qt такое УГ? от Silvy 2011-03-26 01:39:13
avatar
Скрыть

Re: А почему Qt такое УГ?

> Я думаю, что ты слишком толст.
В этом нет ничего страшного, я ведь не собираюсь брать тебя в жёны.

> Тогда while(1); Быдлокод тут не катит, да.
Ты отклоняешься от размышления о причинах своей проблемы с таймерами.

anonymous(*)(2011-03-26 01:43:50)

[#] [Добавить метку] [Редактировать] Ответ на: Re: А почему Qt такое УГ? от anonymous 2011-03-26 01:43:50
avatar
Скрыть

Re: А почему Qt такое УГ?

>В этом нет ничего страшного, я ведь не собираюсь брать тебя в жёны.

А я вот как раз собираюсь. Люблю толстеньких.

>Ты отклоняешься от размышления о причинах своей проблемы с таймерами.

Было бы с кем размышлять. А тут похоже одни кути-дрочеры собрались, лол.

Silvy(*)(2011-03-26 01:47:54)

Mozilla/5.0 (X11; U; Linux i686; ru-RU; rv:1.9.2.15) Gecko/20110304 Mandriva Linux/1.9.2.15-69.1mib2010.2 (2010.2) Firefox/3.6.15
[#] [Добавить метку] [Редактировать] Ответ на: Re: А почему Qt такое УГ? от Silvy 2011-03-26 01:47:54
avatar
Скрыть

Re: А почему Qt такое УГ?

> А я вот как раз собираюсь. Люблю толстеньких.
Надо же какая шалунья, уже и в жёны собирается!

> Было бы с кем размышлять.
Со своим мозгом размышляй же.

anonymous(*)(2011-03-26 01:51:51)

[#] [Добавить метку] [Редактировать] Ответ на: Re: А почему Qt такое УГ? от anonymous 2011-03-26 01:51:51
avatar
Скрыть

Re: А почему Qt такое УГ?

>Надо же какая шалунья, уже и в жёны собирается!

Чур я сзади!

>Со своим мозгом размышляй же.

На лицо очередной фейл ноклы. Или ты что-то хочешь добавить?

Silvy(*)(2011-03-26 02:00:43)

Mozilla/5.0 (X11; U; Linux i686; ru-RU; rv:1.9.2.15) Gecko/20110304 Mandriva Linux/1.9.2.15-69.1mib2010.2 (2010.2) Firefox/3.6.15
[#] [Добавить метку] [Редактировать] Ответ на: Re: А почему Qt такое УГ? от Silvy 2011-03-26 02:00:43
avatar
Скрыть

Re: А почему Qt такое УГ?

> Чур я сзади!
Какая мне разница с какой стороны ты собираешься в жёны :)

anonymous(*)(2011-03-26 02:13:38)

[#] [Добавить метку] [Редактировать] Ответ на: А почему Qt такое УГ? от Silvy 2011-03-25 22:27:00
avatar
Скрыть

Re: А почему Qt такое УГ?

Несмотря на то, что Qt моя любимая технология, но тут я согласен с мандрявым. Я тоже в свое время с этим таймером помудохался нехило.

Tux-oid(*)(2011-03-26 10:33:16)

Mozilla/5.0 (X11; Linux i686; rv:2.0.0) Gecko/20100101 Firefox/4.0
[#] [Добавить метку] [Редактировать] Ответ на: Re: А почему Qt такое УГ? от Tux-oid 2011-03-26 10:33:16
avatar
Скрыть

Re: А почему Qt такое УГ?

Судя по поведению, QT создаёт один таймер, который дёргает все объекты QTimer. И если подёргивания таймеров идут через миллисекунду - он не вылезает из хардлупов. А про хард-лупы них несколько баг-репортов про это есть, на один из них приведена ссылка выше.

anonymous(*)(2011-03-26 14:00:00)

[#] [Добавить метку] [Редактировать] Ответ на: Re: А почему Qt такое УГ? от anonymous 2011-03-26 14:00:00
avatar
Скрыть

Re: А почему Qt такое УГ?

Ты в этом уверен? Сделай через 50 мс, такая же хуйня, только в профиль.

Алсо вот выгуглил  http://labs.qt.nokia.com/2008/08/22/rant-desktop-effects-never-more/ Надо юзать QT_NO_GLIB. Правда в кедах после такого грязного движения жопой перестал работать звук, лол.

Silvy(*)(2011-03-26 19:27:25)

Mozilla/5.0 (X11; U; Linux i686; ru-RU; rv:1.9.2.15) Gecko/20110304 Mandriva Linux/1.9.2.15-69.1mib2010.2 (2010.2) Firefox/3.6.15
Этот тред читают 6 пользователей:
Анонимных: 6
Зарегистрированных: 0




(c) 2010-2020 LOR-NG Developers Group
Powered by TimeMachine

Valid HTML 4.01 Transitional Правильный CSS!