Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Таймер реального времени 
:(
    Опции темы
boostcoder
Дата 4.2.2012, 23:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pattern`щик
****


Профиль
Группа: Завсегдатай
Сообщений: 5458
Регистрация: 1.4.2010

Репутация: 4
Всего: 110



Цитата(Sahab @  4.2.2012,  23:51 Найти цитируемый пост)
судя по всему вы на куте "кодите" а не на плюсах...

по моему, это стандартно, для 90% кутешников smile
PM WWW   Вверх
Sahab
Дата 5.2.2012, 00:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 151
Регистрация: 1.9.2009

Репутация: 2
Всего: 3



Цитата(gpepsi @  4.2.2012,  20:55 Найти цитируемый пост)
Цитата(ksili @  4.2.2012,  13:47 )
Зачем счётчик? Смотришь системное время в начале. Смотришь в конце. Вычисляешь разницу. Всё. 

то, что можно это сделать - понятно. Но если есть готовое решение, то зачем заморачиваться... 

а это типа не готовое решение?) нужно тонны кода написать?)

Добавлено через 1 минуту и 30 секунд
Цитата(boostcoder @  4.2.2012,  23:56 Найти цитируемый пост)
по моему, это стандартно, для 90% кутешников

ну я не стал бы так радикально, на этом форуме много людей которые используют Qt а не "кодят" на ней... хотя некая закономерность все же есть.
PM MAIL   Вверх
tzirechnoy
Дата 5.2.2012, 09:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1173
Регистрация: 30.1.2009

Репутация: 1
Всего: 16



Цитата
не мой.


Вы, Рабинович, либо ник смените, либо не выступайте так.

Цитата
в разы меньше кути.


Ну да конечно.

0_ilan@nb /home/ilan%apt-cache show libqt4-dev
Package: libqt4-dev
Source: qt4-x11
Version: 4:4.7.4-2
Installed-Size: 16922


0_ilan@nb /home/ilan%apt-cache show libboost1.46-dev
Package: libboost1.46-dev
Source: boost1.46
Version: 1.46.1-8
Installed-Size: 56670

При этом это только ядро в обоих случаях -- и добавок у буста на глаз заметно большэ.

Цитата
во вторых - синтаксис плюсовый, как и в куте.


Я про собственно бустовские традицыи.

PM MAIL   Вверх
borisbn
Дата 5.2.2012, 10:31 (ссылка) |   (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 4875
Регистрация: 6.2.2010
Где: Ростов-на-Дону

Репутация: 48
Всего: 135



tzirechnoy, boostcoder, вот меня всегда интересовал вопрос: вы что, в рюкзаке на себе носите boost или Qt ? Какая разница, сколько места занимает библиотека ? Я ещё понимаю неприязнь framework'ов (.Net, Java, etc.), но тут... набор исходников, lib'ин и dll...

P.S. Упомянутые господа - не ссорьтесь. Набор исходников, lib'ин и dll того не стОят  smile 

Это сообщение отредактировал(а) borisbn - 5.2.2012, 10:32


--------------------
Женщины отличаются от программистов тем, что у них чары состоят из стрингов
PM MAIL Jabber   Вверх
boostcoder
Дата 5.2.2012, 10:44 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


pattern`щик
****


Профиль
Группа: Завсегдатай
Сообщений: 5458
Регистрация: 1.4.2010

Репутация: 4
Всего: 110



Цитата(tzirechnoy @  5.2.2012,  09:41 Найти цитируемый пост)
Вы, Рабинович, либо ник смените, либо не выступайте так.

забавная аргументация. погугли, что-ли..

Цитата(tzirechnoy @  5.2.2012,  09:41 Найти цитируемый пост)
Ну да конечно.

хз что там за вывод у тебя, но он явно лжет ;)

>du /usr/local/lib/libboost* -ch
>29M total

boost-1.48.0.tar.gz: 58.7 MB

>du /usr/lib/i386-linux-gnu/libQt* -ch
>65M total

qt-everywhere-opensource-src-4.8.0.tar.gz: 228 MB

так что я хз о чем ты...


Цитата(tzirechnoy @  5.2.2012,  09:41 Найти цитируемый пост)
Я про собственно бустовские традицыи.

какие традиции?
как может быть виноват инструмент в том, что ты им пользоваться не умеешь?

Добавлено @ 10:45
borisbn, объем библиотеки меня не заботит, в нынешнее-то время. я просто ответил.

а вообще, не переношу пустозвонов и трепло.

Это сообщение отредактировал(а) boostcoder - 5.2.2012, 10:56
PM WWW   Вверх
Sahab
Дата 5.2.2012, 17:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 151
Регистрация: 1.9.2009

Репутация: 2
Всего: 3



Цитата(tzirechnoy @  5.2.2012,  09:41 Найти цитируемый пост)
Ну да конечно.

0_ilan@nb /home/ilan%apt-cache show libqt4-dev
Package: libqt4-dev
Source: qt4-x11
Version: 4:4.7.4-2
Installed-Size: 16922


0_ilan@nb /home/ilan%apt-cache show libboost1.46-dev
Package: libboost1.46-dev
Source: boost1.46
Version: 1.46.1-8
Installed-Size: 56670

А вы всю кутю с собой таскаете? Не смешите...

А давайте померяем приложение Qt с сетевой частью (консольное) и с boost.asio? Какая разница? То-то.
А вообще по поводу размера - согласен с постом borisbn.


Цитата(tzirechnoy @  5.2.2012,  09:41 Найти цитируемый пост)
Я про собственно бустовские традицыи.

щитовынесете? 
А Вы вообще в курсе что часть буста вошла в стандарт, а некоторая часть чуть ли не скопипасчена в gcc?
И по вашему это делают люди которые любят 
Цитата
тупой, жырный буст с кривым синтаксисом? 
 
или у них просто моцка поболее чем у тех кто не умеет его готовить?
PM MAIL   Вверх
_GRIN_
Дата 6.2.2012, 18:29 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


одинокий падаван
**


Профиль
Группа: Участник
Сообщений: 272
Регистрация: 18.11.2007
Где: Калуга

Репутация: 6
Всего: 7



Цитата(ksili @  4.2.2012,  11:47 Найти цитируемый пост)
Зачем счётчик? Смотришь системное время в начале. Смотришь в конце. Вычисляешь разницу. Всё. 

Для систем с ntp-серверами, где автомотическая подводка времени, данное решение будет не правильным.
Правильное решение - QElapsedTimer - или boost-овский вариант - но, признаться я boost не знаю и ничего сказать не смогу.


--------------------
Дорогу осилит идущий
PM MAIL Skype   Вверх
gpepsi
Дата 7.2.2012, 10:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 121
Регистрация: 14.3.2010

Репутация: нет
Всего: нет



Цитата(_GRIN_ @  6.2.2012,  18:29 Найти цитируемый пост)
Правильное решение - QElapsedTimer 

я что-то не нашел как его сбросить
PM MAIL   Вверх
Sahab
Дата 7.2.2012, 11:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 151
Регистрация: 1.9.2009

Репутация: 2
Всего: 3



qint64 QElapsedTimer::restart ()
PM MAIL   Вверх
boostcoder
Дата 7.2.2012, 12:14 (ссылка) |    (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


pattern`щик
****


Профиль
Группа: Завсегдатай
Сообщений: 5458
Регистрация: 1.4.2010

Репутация: 4
Всего: 110



Цитата(gpepsi @  7.2.2012,  10:27 Найти цитируемый пост)
я что-то не нашел как его сбросить

:facepalm

PM WWW   Вверх
gpepsi
Дата 8.2.2012, 09:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 121
Регистрация: 14.3.2010

Репутация: нет
Всего: нет



Цитата(Sahab @  7.2.2012,  11:04 Найти цитируемый пост)
qint64 QElapsedTimer::restart ()

restart опять пачнет отсчет, а мне этого не нужно.

Поясню, что мне нужно.
Пусть есть процесс. Изначально elapsed должен отдавать 0.
Запускаю таймер - в процессе его работы я должен получать время, сколько он проработал.
Останавливаю процесс. Теперь таймер должен остановиться и показывать время, которое процесс отработал.

Если запустить его заново, то время должно сброситься (restart) и начать осчет заново.

Вот остановить таймер вроде нельзя.
PM MAIL   Вверх
_GRIN_
Дата 8.2.2012, 10:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


одинокий падаван
**


Профиль
Группа: Участник
Сообщений: 272
Регистрация: 18.11.2007
Где: Калуга

Репутация: 6
Всего: 7



Вот тебе обёртка
Код

#ifndef ELAPSED_TIMER_WRAPPER_H
#define ELAPSED_TIMER_WRAPPER_H

#include <QElapsedTimer>

class CElapsedTimerWrapper
{
    Q_DISABLE_COPY(CElapsedTimerWrapper)
public:
    CElapsedTimerWrapper() : m_is_active(false) {}
    qint64 elapsed()const { return m_is_active ? m_timer.elapsed() : 0; }
    void start() { m_is_active = true; m_timer.restart(); }
    void stop() { m_is_active = false; }

private:
    QElapsedTimer m_timer;
    bool m_is_active;
};
#endif // ELAPSED_TIMER_WRAPPER_H


Вот проверочный код
Код

#include <QDebug>
int main()
{
    CElapsedTimerWrapper timer;
    timer.start();
    usleep(1000*500);
    qDebug() << timer.elapsed();
    timer.start();
    usleep(1000*200);
    qDebug() << timer.elapsed();
    timer.stop();
    usleep(1000*200);
    qDebug() << timer.elapsed();
    timer.start();
    usleep(1000*100);
    qDebug() << timer.elapsed();
    return 0;
}


вот лог
Код

500 
200 
0 
100 



--------------------
Дорогу осилит идущий
PM MAIL Skype   Вверх
gpepsi
Дата 8.2.2012, 10:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 121
Регистрация: 14.3.2010

Репутация: нет
Всего: нет



Цитата(_GRIN_ @  8.2.2012,  10:05 Найти цитируемый пост)
Вот тебе обёртка

после stop он должен возвращать время последней работы
PM MAIL   Вверх
_GRIN_
Дата 8.2.2012, 10:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


одинокий падаван
**


Профиль
Группа: Участник
Сообщений: 272
Регистрация: 18.11.2007
Где: Калуга

Репутация: 6
Всего: 7



Цитата(gpepsi @  8.2.2012,  08:08 Найти цитируемый пост)
после stop он должен возвращать время последней работы 

Поправил
Код

#ifndef ELAPSED_TIMER_WRAPPER_H
#define ELAPSED_TIMER_WRAPPER_H

#include <QElapsedTimer>

class CElapsedTimerWrapper
{
    Q_DISABLE_COPY(CElapsedTimerWrapper)
public:
    CElapsedTimerWrapper() : m_is_active(false) {}
    qint64 elapsed()const { return m_is_active ? m_timer.elapsed() : m_elapsed; }
    void start() { m_is_active = true; m_timer.restart(); }
    void stop() { m_elapsed = m_timer.elapsed();m_is_active = false; }

private:
    QElapsedTimer m_timer;
    bool m_is_active;
    qint64 m_elapsed;
};

#endif // ELAPSED_TIMER_WRAPPER_H


вывод
Код

501 
200 
200 
100 


Проверочный код тот же


--------------------
Дорогу осилит идущий
PM MAIL Skype   Вверх
math64
Дата 8.2.2012, 10:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2505
Регистрация: 12.4.2007

Репутация: 23
Всего: 72



Цитата(gpepsi @  8.2.2012,  10:08 Найти цитируемый пост)
после stop он должен возвращать время последней работы 

Так запомни его в поле класса и возвращай его из поля класса, когда таймер остановлен.
При запуске таймера можно сбрасывать запомненное значение
При остановке таймера можно сложить прошедшеее время с запомненным, а можно не складывать
А можно хранить отдельно время последнего запуска и суммарное время.
PM   Вверх
Страницы: (3) Все 1 [2] 3 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С/С++: Кроссплатформенное программирование, QT/Gtk+/wxWidgets"
JackYF
Любитель
  • В заголовке темы в квадратных скобках обозначьте используемую вами библиотеку, например: [QT],[GTK],[wx].
  • Если вопрос актуален только для некоторой версии библиотеки, либо, если вы пользуетесь не самой последней версией, укажите это. Например: [QT4], [GTK2].
  • Все начинающие изучать Qt - не забудьте зайти сюда.
  • Проставьте несколько ключевых слов темы, чтобы её можно было легче найти.
  • В вопросе укажите полную версию версию библиотеки, а также все дополнительные используемые программные пакеты.
  • Не забывайте пользоваться кнопкой "Код".
  • Телепатов на форуме нет! Задавайте чёткий, конкретный и полный вопрос. Указывайте полностью ошибки компилятора и компоновщика.
  • Новое сообщение должно иметь прямое отношение к тематике этого раздела. Флуд, флейм, оффтопик запрещены.
  • Категорически запрещается обсуждение вареза, "кряков", взлома программ и т.д.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, Любитель.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets | Следующая тема »


 




[ Время генерации скрипта: 0.0620 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.