LINUX.ORG.RU
ФорумTalks

Qt4: быстрее или медленнее???


0

0

Есть ли объективные результаты сравнения?

А то я тут накропал

void Window::StartButtonPressed()
{
  clock_t start,end;
  int i;
  
  start=clock();
  for (i=0;i<2e4;i++) {
    TestButton=new QPushButton(this);
    TestButton->setGeometry(QRect(50,5,75,25));
    TestButton->setText("Start test");
    TestButton->~QPushButton();
  }
  end=clock();
  printf("Elapsed time: %f\n",(end-start)/(double)CLOCKS_PER_SEC);
}

, после чего долго чесал репу: Qt 4.1.4 мучила комп 41 секунду, а Qt 3.3.4
хватило 0,27 с.
anonymous
Ответ на: комментарий от Pi

В обоих случаях я кнопки не видел. Принимаются предложения по усовершенствованию теста, потому что я его особо сильно не продумывал.

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

а ничего не надо совершенствовать: оно должно одинаково плохо или хорошо работать :)

Pi ★★★★★
()

Какой-то странный тест...
Обещают вобщем-то что qt4 будет побыстрее qt3 (облегчены основные классы QApplication и QWidget плюс libqt разбита на части), да и на глазок qt4 проги пошустрее шевелятся...

Deleted
()

Вероятно там просто разные алгоритмы используются, например qt3 откладывает какие-то инициализации на потом. Вообще интересно, я вот чуть-чуть оптимизировал:

start=clock();
QRect r(50, 5, 72, 25);
QString s("Start test");

for (i=0;i<2e3;i++) {
QPushButton *TestButton = new QPushButton(s, this);
TestButton->setGeometry(r);
TestButton->~QPushButton();
}
end=clock();

printf("Elapsed time: %f\n",(end-start)/(double)CLOCKS_PER_SEC);

если 2000, то получается 0.22 с, если 20000, то 16.08 с

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

немного масла в огонь :)

pi@lorn:~$ cat ./test.c
#include <gtk/gtk.h>

int main( int   argc,
          char *argv[] )
{
    GtkWidget *button;

    gtk_init (&argc, &argv);
     clock_t start,end;
  int i;
  start=clock();
 for (i=0;i<2e4;i++) {
    button = gtk_button_new_with_label ("Hello World");
    gtk_widget_destroy (button);
 }
  end=clock();
  printf("Elapsed time: %f\n",(end-start)/(double)CLOCKS_PER_SEC);
    return 0;
}
pi@lorn:~$ gcc -Wall test.c -o helloworld `pkg-config --cflags gtk+-2.0`  `pkg-config --libs gtk+-2.0`
pi@lorn:~$ ./helloworld
Elapsed time: 1,630000
pi@lorn:~$

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

% cat test.cpp                                                                                                    ~/test/qt2
#include <QApplication>
#include <QPushButton>

int main(int argc, char *argv[])
{
    QApplication app(argc, argv);
    QPushButton *b;

    clock_t start,end;
    int i;
    start=clock();
    QString str("button name");
    for (i=0;i<2e4;i++) {
	b = new QPushButton(str);
	b->~QPushButton();
    }
    end=clock();
    printf("Elapsed time: %f\n",(end-start)/(double)CLOCKS_PER_SEC);

    return 0;
}
% ./qt2                                                                                                           ~/test/qt2
Elapsed time: 1.880000


:)

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

но во видишь.. :) геометрия много жрёт :(

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

cat test.c
#include <gtk/gtk.h>

int main( int   argc,  char *argv[] )
{
            GtkWidget *button;

            gtk_init (&argc, &argv);
            clock_t start,end;
            int i;
            start=clock();
            for (i=0;i<20000;i++)
                {
                      button = gtk_button_new_with_label ("Hello World");
                      gtk_widget_set_size_request(button,100,100);
                      gtk_widget_destroy (button);
                }
            end=clock();
            printf("Elapsed time: %f\n",(end-start)/(double)CLOCKS_PER_SEC);
            return 0;
}


geek@geek-laptop:~$ ./helloworld
Elapsed time: 0,920000
geek@geek-laptop:~$

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

только вот отчего гномовское главное меню так адски долго открывается?

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

кстати! я свойей прграммулиной помучал kpowernowd, чтоб он частоту проца до максисмума поднял, и она показала похожее время

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

рулит? на синтетических тестах...%) а на практике слайдшоу

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