crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )


  Ответ в Оптимизировать...
Введите ваше имя
Подтвердите код

Введите в поле код из 6 символов, отображенных в виде изображения. Если вы не можете прочитать код с изображения, нажмите на изображение для генерации нового кода.
 

Опции сообщения
 Включить смайлы?
Иконки сообщения
(Опционально)
                                
                                
  [ Без иконки ]
 


Последние 10 сообщений [ в обратном порядке ]
kibsoft Дата 10.11.2009, 15:40
  А я хз... вот теперь хорошая программа :)
QStringList str;
    uint sum=0;
    char x[100];
    for(int i=0;i<=1500000;++i)  {
        sum+=i;
        sprintf(x,"Number: %i Sum: %i",i,sum);
        str.append(x);
    }
    model->setStringList(str);
    lv->setModel(model);

450мс работа программы :)
Litkevich Yuriy Дата 10.11.2009, 15:31
 
Цитата(kibsoft @ 10.11.2009, 18:18) *
у друга 500мс на выполнение в C#...
а этот тип string в C# поддерживает Unicode?
kibsoft Дата 10.11.2009, 15:18
 
Цитата
Хоть может уже не актуально, но вот мой вариант :)

Я так и сделал :)
Засек в Process Explorer:
время на запуск приложения: 78мс
время на выполнение: 764мс
Ммм..не помешало бы еще ченить оптимизировать, у друга 500мс на выполнение в C#...
Kagami Дата 10.11.2009, 14:57
  Хоть может уже не актуально, но вот мой вариант :)
Раскрывающийся текст
#include <QApplication>
#include <QListView>
#include <QStringListModel>

int main(int argc, char* argv[]) {
    QApplication app(argc,argv);
    QStringList str;
    uint sum=0;
    for(int i=0;i<150000;++i)
    {
        sum+=i;
        str << QString("Number: %1  Sum: %2").arg(i).arg(sum);
    }
    QStringListModel* m = new QStringListModel;
    m->setStringList(str);
    QListView s;
    s.setUniformItemSizes(true);
    s.setModel(m);
    s.show();
    return app.exec();
}

kibsoft Дата 10.11.2009, 14:56
  С использование представление+модель работа программу заметно ускорилось, спасибо :) и памяти меньше жрет..
Litkevich Yuriy Дата 10.11.2009, 14:47
  вообще не мешало бы померить время, где больше всего времени затрачивается.

Можно вот этим воспользоваться, для Qt >=4.5
Kagami Дата 10.11.2009, 14:31
  Попробуй заменить
str << ((str1+QString::number(i)+str2+QString::number(sum)));

на
str << QString("Number: %1  Sum: %2").arg(i).arg(sum);

Может чуть добавить производительности
Litkevich Yuriy Дата 10.11.2009, 14:30
 
Цитата(kibsoft @ 10.11.2009, 17:07) *
подскажите, как можно ускорить работы программы
отказатся от виджета и использовать представление+модель

Виджет расчитан, в лучшем случае, на сотни элементов
kibsoft Дата 10.11.2009, 14:07
  Один товарищ зае...л меня с WPF и C#, написали прогу, которая выводит сумму предыдущих элементов, но он создает уже инициализированный массив, т.е. string[] str=new string[150000] и естественно она работает быстрее... у меня тормоз проявляется в строке lw->addItems(str), подскажите, как можно ускорить работы программы, чтобы он от меня отстал наконец :)
  QListWidget *lw;
lw=new QListWidget();
    lw->setUniformItemSizes(true);
QString str1("Number: "),str2(" Sum: ");
    QStringList str;
    uint sum=0;
    for(int i=0;i<=150000;++i)  {
        sum+=i;
        str << ((str1+QString::number(i)+str2+QString::number(sum)));
    }
    lw->addItems(str);
Просмотр темы полностью (откроется в новом окне)
RSS Текстовая версия Сейчас: 28.3.2024, 13:19