Russian Qt Forum
Ноябрь 24, 2024, 01:43 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1] 2 3   Вниз
  Печать  
Автор Тема: Измерение времени  (Прочитано 20619 раз)
thechicho
Гость
« : Сентябрь 30, 2011, 20:14 »

Подскажите, как измерять время?

Аналог на php:

Код:
$start = microtime(1);
$time = microtime(1) - $start;
Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #1 : Сентябрь 30, 2011, 20:18 »

QTime::elapsed () ?
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
andrewshkovskii
Гость
« Ответ #2 : Сентябрь 30, 2011, 20:20 »

ну для этого надо было бы вызвать сначала start/restart.
Просто этот парень доку не читает, не допер бы.
Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4747



Просмотр профиля WWW
« Ответ #3 : Сентябрь 30, 2011, 20:21 »

еще clock() можно
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
thechicho
Гость
« Ответ #4 : Сентябрь 30, 2011, 20:53 »

// Просто этот парень доку не читает, не допер бы.
за базар ответишь?

а ваще поставь себя на мое место.
чо бы ты там стал читать, чтобы найти ответ на мой вопрос? все?!

я уже зае ее читать!
а ответ на подобные вопросы, бывает приходится искать часами!
поэтому и спросил тут.

сорри, просто реально устал. сложно дается, т.к. не знаю плюсы ( не надо советовать их учить ток, я понемногу разбираюсь на реальных примерах, а теорию читать не вижу больше смысла, т.к. прочитал эту х http://valera.asf.ru/cpp/book/ (ВСЕ прочитал) и ничо не понял - примеры не разбирал правда, ибо там какая-то лажа или университетский уровень (аля числа фибоначи и прочая х, кот. мне никогда не пригодится) )

сенкс, за ваши ответы.
буду пробовать.
Записан
andrewshkovskii
Гость
« Ответ #5 : Сентябрь 30, 2011, 21:13 »

Молодой человек, прошу Вас, успокойтесь, я могу и ответить, если хотите - Вам не понравиться.
Поставил  - c qt поставляется отличный асистент с контекстным поиском и индексированием, набираешь time.. находишь класс QTime, логически подумать как измерить время -> находишь нужные методы - все просто, достаточно подумать.
С Вашим подходом к изучению программирования у Вас так мало что выйдет, говнокод да и только.
Я понимаю что ПХП Вам позволило просто создавать сайтики, но этого мало, что бы по-настоящему программировать.
Записан
thechicho
Гость
« Ответ #6 : Сентябрь 30, 2011, 21:23 »

красиво говорите!
но Вы не поняли о чем я.

мне проги нужны для своих нужд, я не собираюсь работать кодером на Qt (нафик этот геморрой).
так что и говнокод сойдет для начала, лишь бы прога делала то, что мне надо!!!
хотя не отказался бы от советов по оптимизации говнокода! (чтобы прога быстрее работала)
а вот на эстетику кода и все такое, мне пофик.

// не понравиться
пишется без ь. привет от http://lurkmore.ru/Grammar_nazi . Вы бы с ним нашли общий язык полюбому)
ы
Записан
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #7 : Сентябрь 30, 2011, 21:50 »

находишь класс QTime, логически подумать как измерить время -> находишь нужные методы - все просто, достаточно подумать.
"Подумать" не требуется, тем более "логически". Берется готовый класс и пользуется. В подробности вдаваться не нужно, достаточно передрать пример (обычно с той же страницы где и описание класса). Напр

Цитировать
QTime t;
 t.start();
 some_lengthy_task();
 qDebug("Time elapsed: %d ms", t.elapsed());

Ну конечно подставить что-то свое вместо some_lengthy_task - и вот Вы уже вполне доросли чтобы обозвать кого-то говнокодером  Улыбающийся
Записан
andrewshkovskii
Гость
« Ответ #8 : Сентябрь 30, 2011, 22:18 »

Я в шоке. Хорошему учишь.
Записан
thechicho
Гость
« Ответ #9 : Октябрь 01, 2011, 19:54 »

andrewshkovskii, Вы б лучше помогли.

подскажите, как... не знаю как это правильно называется.

в общем в первом слоте:
Код
C++ (Qt)
QElapsedTimer timer;
timer.start();

в последнем:
Код
C++ (Qt)
qDebug() << timer.elapsed();

как это делается?
Записан
thechicho
Гость
« Ответ #10 : Октябрь 01, 2011, 20:03 »

пробовал тупо добавить QElapsedTimer timer; в последнем слоте.

тогда:

Код
C++ (Qt)
qDebug() << "The slow operation took" << timer.elapsed() << "milliseconds";
qDebug() << "The slow operation took" << timer.elapsed()/1000 << "seconds";
qDebug() << "The slow operation took" << timer.elapsed()/1000/60 << "minutes";

The slow operation took 8593622089 milliseconds
The slow operation took 8593622 seconds
The slow operation took 143227 minutes

хотя времени проходит секунд 15
Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4747



Просмотр профиля WWW
« Ответ #11 : Октябрь 01, 2011, 20:33 »

видимо timer.start(); забыл раз "пробовал тупо добавить QElapsedTimer timer;"
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
thechicho
Гость
« Ответ #12 : Октябрь 01, 2011, 20:40 »

бл...
сложно так помочь чтоле?

выше сообщение прочитай мое.
Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4747



Просмотр профиля WWW
« Ответ #13 : Октябрь 01, 2011, 21:07 »

вот тебе рабочий код, ошибки у себя ищи сам:
Код
C++ (Qt)
#include <QtCore/QCoreApplication>
#include <QElapsedTimer>
#include <Windows.h>
 
int main(int argc, char *argv[])
{
   QCoreApplication a(argc, argv);
 
   QElapsedTimer t;
   t.start();
   qDebug("%d", t.elapsed());
   Sleep(10000);
   qDebug("%d", t.elapsed());
 
   return a.exec();
}
Цитата: Вывод
Запускается C:\Qt\timer-build-desktop-Qt_4_7_4_for_Desktop_-_MSVC2008__Qt_SDK_________\debug\timer.exe...
0
10000

а, я вроде телепатически понял чего ты добиваешься (сам же не хочешь нормально описать что нужно) - узнавать в разных методах/слотах сколько времени прошло с момента запуска таймера. для этого надо поместить переменную типа QElapsedTimer в свой класс и запустить ей start() перед вызовом первого метода/слота, тогда ты сможешь обращаться к этой переменной в любом месте своего класса.
« Последнее редактирование: Октябрь 01, 2011, 21:13 от kambala » Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
BRE
Гость
« Ответ #14 : Октябрь 01, 2011, 21:11 »

как это делается?
Код
C++ (Qt)
class MyClass : public QObject
{
...
public slots:
void slot1()
{
timer.start();
}
 
void slot2()
{
qint64 res = timer.elapsed();
qDebug() << "The slow operation took" << res << "milliseconds";
qDebug() << "The slow operation took" << res/1000 << "seconds";
qDebug() << "The slow operation took" << res/1000/60 << "minutes";
}
 
private:
QElapsedTimer timer;
};
 
Записан
Страниц: [1] 2 3   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.177 секунд. Запросов: 23.