crossplatform.ru

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

2 страниц V  < 1 2  
Ответить в данную темуНачать новую тему
> Время выполнения программы/функции/цикла
RazrFalcon
  опции профиля:
сообщение 5.10.2010, 18:52
Сообщение #11


Zombie Mod
*****

Группа: Участник
Сообщений: 1654
Регистрация: 24.5.2010
Из: Харьков
Пользователь №: 1752

Спасибо сказали: 64 раз(а)




Репутация:   212  


Цитата(alex977 @ 5.10.2010, 18:27) *
Класс QTime не подходит для этих целей?
Раскрывающийся текст
QTime QTime::currentTime () [static]
This is an overloaded function.

Returns the current time as reported by the system clock.

Note that the accuracy depends on the accuracy of the underlying operating system; not all systems provide 1-millisecond accuracy.

Возможно, мне интересно было просто именно через консоль.
Попробую и через QTime.
Все равно, то что я написал выше обрабатывается за 310мс :lol:
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Sokoloff
  опции профиля:
сообщение 5.10.2010, 19:32
Сообщение #12


Участник
**

Группа: Участник
Сообщений: 237
Регистрация: 1.4.2009
Из: Москва
Пользователь №: 654

Спасибо сказали: 50 раз(а)




Репутация:   11  


Цитата(RazrFalcon @ 5.10.2010, 18:34) *
Наверное не лучший вариант, но и только линуксовый. Но меня устраивает.

Этот вариант очень не точный, ты дергаешь внешнюю программу а это задержки на поиск файла, на его запуск и.т.д.
Вот вариант с gettimeofday
#include <sys/time.h>

timeval start, stop;

gettimeofday(&start, NULL);
вызов длительной функции
gettimeofday(&stop, NULL);

qDebug() << ((double)stop.tv_sec + (double)stop.tv_usec/(1000*1000)) - ((double)start.tv_sec + (double)start.tv_usec/(1000*1000));


Не знаю какую точность этот метод даст, но по всякому он точнее чем запуск внешней утилиты.

P.S. Судя по коду QTime::currentTime() должен давать сопоставимую точность.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Kagami
  опции профиля:
сообщение 6.10.2010, 8:53
Сообщение #13


Старейший участник
****

Группа: Участник
Сообщений: 601
Регистрация: 2.2.2009
Пользователь №: 523

Спасибо сказали: 101 раз(а)




Репутация:   9  


Надоело читать эту тему. Когда же уже люди научаться пользоваться поиском? тыц
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
RazrFalcon
  опции профиля:
сообщение 6.10.2010, 13:59
Сообщение #14


Zombie Mod
*****

Группа: Участник
Сообщений: 1654
Регистрация: 24.5.2010
Из: Харьков
Пользователь №: 1752

Спасибо сказали: 64 раз(а)




Репутация:   212  


Цитата(Kagami @ 6.10.2010, 8:53) *
Надоело читать эту тему. Когда же уже люди научаться пользоваться поиском? тыц

Спасибо конечно, но мне б никогда в голову не пришло написать " требуется кросплатформенный счётчик "тиков"", я и не знал о таком до этой темы.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Алексей1153
  опции профиля:
сообщение 6.10.2010, 14:06
Сообщение #15


фрилансер
******

Группа: Участник
Сообщений: 2941
Регистрация: 19.6.2010
Из: Обливион
Пользователь №: 1822

Спасибо сказали: 215 раз(а)




Репутация:   34  


[offtop]
да это ваще - кроссплатформа - лишняя дополнительная головная боль :D Не было печали... До Qt, то есть.
[/offtop]

Сообщение отредактировал Алексей1153 - 6.10.2010, 14:07
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
RazrFalcon
  опции профиля:
сообщение 6.10.2010, 14:50
Сообщение #16


Zombie Mod
*****

Группа: Участник
Сообщений: 1654
Регистрация: 24.5.2010
Из: Харьков
Пользователь №: 1752

Спасибо сказали: 64 раз(а)




Репутация:   212  


Значит если я все правильно сделал, то выходят такие результаты
Способ Mr.Sokoloff'a дал нам
0.00009 с
мой криво-способ
0.3192440 с
Результат на лицо. Все исходники уже есть в теме.
PS: просто запускалось "взятие" времени подряд, без каких либо функций. Иногда ставил sleep(1); между, для удобства.

Сообщение отредактировал RazrFalcon - 6.10.2010, 14:50
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Гость_Гость_*
сообщение 9.10.2012, 11:01
Сообщение #17





Гости








    


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

QTime t;
t.start();
some_lengthy_task();
qDebug("Time elapsed: %d ms", t.elapsed());


зы Учитесь читать справку)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

2 страниц V  < 1 2
Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 27.11.2024, 4:51