LINUX.ORG.RU
ФорумTalks

[быдлокодинг] Qt3 vs Qt4


0

0

Получился довольно интересный результат. Это кусок кода создаёт 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);
}

anonymous

Позвать двух всем известных людей с никами, количество букв в которых равно степеням двойки?

anonymous
()

Qt3-dev не стоит.

Давай пойдёт с другого пути. Ты хочешь сказать, что эти программы вообще отбирают процессорное время? 10-ю таймерами? Чем замерял?

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

> Давай пойдёт с другого пути. Ты хочешь сказать, что эти программы вообще отбирают процессорное время? 10-ю таймерами? Чем замерял?

С помощью top. Съедает около 10% от процессора против 0.3-0.7% у Qt3.

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

>Съедает около 10% от процессора

Омф... у меня mplayer при полноэкранном просмотре видео столько не занимает, а ты про 10 таймеров?... Лол. Давай весь исходник, а то мало ли куда ты там впихнул этот for.

JackYF ★★★★
()

Я другой анонимус, но вот полный пример.

$ qmake -project
$ qmake
$ make

#include <qapplication.h>
#include <qtimer.h>

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;
}

anonymous
()

#include <QApplication> #include <QMainWindow> #include <QTimer>

class Window : public QMainWindow {

public: Window(QWidget *parent = 0) : QMainWindow(parent) { for (int i = 0; i < 10; ++i) { QTimer *timer = new QTimer(this); timer->start(30+i); } };

~ Window() {};

};

int main(int argc, char *argv[]) { QApplication app(argc, argv); Window w; w.show(); qDebug("Hello from Qt 4!"); return app.exec(); }

anonymous
()

#include <QApplication>
#include <QMainWindow>
#include <QTimer>


class Window : public QMainWindow
{

public:
Window(QWidget *parent = 0) : QMainWindow(parent)
{
for (int i = 0; i < 10; ++i)
{
QTimer *timer = new QTimer(this);
timer->start(30+i);
}
};

~ Window()
{};

};

int main(int argc, char *argv[])
{
QApplication app(argc, argv);
Window w;
w.show();
qDebug("Hello from Qt 4!");
return app.exec();
}

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

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

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

Вах, сколько сразу исходников :)

Машина:

Linux 1501-debian 2.6.22-2-amd64 #1 SMP Thu Aug 30 23:43:59 UTC 2007 x86_64 GNU/Linux

Загрузка: 0.0%, Qt 4.3.4. Не троллите так скучно больше :)

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

> Загрузка: 0.0%, Qt 4.3.4. Не троллите так скучно больше :)

И что? Система у меня 32-х битная, а у тебя, как я понял, амд 64. Так что мимо. А сигнал поступил от двух других человек. У одного alt, у другого - gentoo. У меня - мандрива.

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

> Я проверял на 4.3.2, может, в 4.3.4 починили.

У меня тоже было 4.3.4. Сейчас стюнул 4.3.5 с помощью rsync, картина аналогичная :(

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

> Загрузка: 0.0%, Qt 4.3.4. Не троллите так скучно больше :)

И вообще, чем обвинять в троллизме, кидай лучше ссылку на данынй пакет и версию gcc.

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

> gcc-4.1.2

У меня показывает: gcc version 4.2.2 20070909 (prerelease) (4.2.2-0.RC.1mdv2008.0)

Отправил багрепорт, подожду ответа.

ЗЫ До этого стояла мандрива 2007.1 на cel 1100 и всё было нормально. Потом обновил систему вместе с компом и началось :(

anonymous
()

alex 13750 1.1 0.9 26044 9676 pts/6 S+ 16:28 0:00 ./qt_timers

$ uname -a
Linux darovsky 2.6.24-gentoo #3 PREEMPT Sat Jan 26 11:46:17 YEKT 2008 i686 AMD Athlon(tm) 64 Processor 3800+ AuthenticAMD GNU/Linux

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

> Позвать двух всем известных людей с никами, количество букв в которых равно степеням двойки?

А второй кто?

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

Опаньки. Ладно, обвинения в троллизме снимаю. Думал, это только анонимусы возмущаются.

$ dpkg -l | grep libqt4
ii libqt4-core 4.3.4-2 Qt 4 core non-GUI functionality runtime libr
ii libqt4-dev 4.3.4-2 Qt 4 development files
ii libqt4-gui 4.3.4-2 Qt 4 core GUI functionality runtime library
ii libqt4-qt3support 4.3.4-2 Qt 3 compatibility library for Qt 4
ii libqt4-sql 4.3.4-2 Qt 4 SQL database module

$ g++ --version
g++ (GCC) 4.2.3 20071123 (prerelease) (Debian 4.2.2-4)

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

>> Позвать двух всем известных людей с никами, количество букв в которых равно степеням двойки?

>А второй кто?

Степени: 1; 2. Дальше догадаешься?

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