Форум программистов, компьютерный форум, киберфорум
Visual C++
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.66/154: Рейтинг темы: голосов - 154, средняя оценка - 4.66
 Аватар для leoned
31 / 31 / 0
Регистрация: 30.06.2011
Сообщений: 467

Как правильно ипользовать clock() и GetTickCount()?

18.07.2011, 10:08. Показов 31568. Ответов 15
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
я и гуглил и по сайту яндаксил но так и не в курил как правильно ипользовать эти функции(clock() и GetTickCount())
вот код в котором я хочу за сечь время выполнения цикла
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
 #include <iostream>
 using namespace std;
 
int main()
    {
    locale::global(locale("rus"));
    for (int num = 100;num >= 0;num--)
      {
        cout<<num<<"\t";
      }
    system("pause");
    return 0;
}
пожалуйста помогите!!!
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
18.07.2011, 10:08
Ответы с готовыми решениями:

Автоматически сбрасываются частоты Core clock Шейдеров и Memory clock, AMD M2N-MX se plus
Добрый Вечер! У меня такая проблема: Во время игры падает фпс(Кол-во Кадров в секунду),нажимаю alt+tab и по мониторингу вижу что...

Возможно ли сделать отсчет времени в лотусе Clock In/ Clock Out
Привет лотусистам! Такая вот задача. Когда человек приходит на работу он в лотусе где то ставит что он начал работу, каждые 4 часа он...

Core clock и Memory Clock - что это за параметры?
Core clock и Memory Clock разъясните мне, пожалуйста, что это за параметры? По умолчанию Core Clock стоит 920MHz а Memory Clock 1050MHz....

15
4 / 4 / 1
Регистрация: 18.04.2010
Сообщений: 82
18.07.2011, 10:17
Я для таких целей юзал tickGet(), правда операционка была vxWorks, потому не знаю есть ли такое в виндею Если нет, то поищите аналог - это взятие текущего време6ни (отсчет, если не ошибаюсь от начала запуска системы)ю Берете значение перед выполнением цикла, потом после выполнения цикла, а разница между этими двумя значениями и будет именно то, что вам необходимо.
0
 Аватар для leoned
31 / 31 / 0
Регистрация: 30.06.2011
Сообщений: 467
18.07.2011, 10:18  [ТС]
повробавол tickGet() окошки на него ругаются
0
4 / 4 / 1
Регистрация: 18.04.2010
Сообщений: 82
18.07.2011, 10:37
Если честно, то сейчас уже не вспомню точно, что я юзал в винде, но мне почему-то кажется, что это была ф-ия именно clock().
0
 Аватар для leoned
31 / 31 / 0
Регистрация: 30.06.2011
Сообщений: 467
18.07.2011, 10:42  [ТС]
а как ей правильно пользоваться?

Добавлено через 20 секунд
на премере этого кода
0
4 / 4 / 1
Регистрация: 18.04.2010
Сообщений: 82
18.07.2011, 10:55
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
 #include <iostream>
 using namespace std;
 
int main()
    {
    locale::global(locale("rus"));
int firstly_time = clock();
        for (int num = 100;num >= 0;num--)
          {
                cout<<num<<"\t";
          }
int secondary_time = clock();
        system("pause");
 
int finish_time = secondary_time - firstly_time;
        return 0;
}
P.S. Возможно я прогадал с возвращаемым значением у clock() (мб это не int). Возможно возвращает _ttime, но это, если не ошибаюсь, тот же продефайненый int. Идейя вцелом такая, как написл, думаю что более или менее понятно.
0
 Аватар для leoned
31 / 31 / 0
Регистрация: 30.06.2011
Сообщений: 467
18.07.2011, 12:26  [ТС]
пишит что индификатор clock() не определён
как я по немаю нужно подключить какуета библеотку?
0
4 / 4 / 1
Регистрация: 18.04.2010
Сообщений: 82
18.07.2011, 12:39
Цитата Сообщение от leoned Посмотреть сообщение
пишит что индификатор clock() не определён
как я по немаю нужно подключить какуета библеотку?

Попробуй в начало дописать:

#include <time.h>
0
 Аватар для leoned
31 / 31 / 0
Регистрация: 30.06.2011
Сообщений: 467
18.07.2011, 12:43  [ТС]
а в чём выводится ризультат?в секундах или милисекундах?
0
4 / 4 / 1
Регистрация: 18.04.2010
Сообщений: 82
18.07.2011, 12:48
Цитата Сообщение от leoned Посмотреть сообщение
а в чём выводится ризультат?в секундах или милисекундах?
Цитата Сообщение от MSDN
Return Value

The elapsed wall-clock time since the start of the process (elapsed time in seconds times CLOCKS_PER_SEC). If the amount of elapsed time is unavailable, the function returns –1, cast as a clock_t.
В секундах, а возвращает тип clock_t, чуется мне, что это как раз и есть задефайненный int.
0
 Аватар для leoned
31 / 31 / 0
Регистрация: 30.06.2011
Сообщений: 467
18.07.2011, 12:54  [ТС]
ага 46 секунд для цикла в 100 инацилизаций через чур много!!!

Добавлено через 1 минуту
без cout 15-13 и то до фига!
1
4 / 4 / 1
Регистрация: 18.04.2010
Сообщений: 82
18.07.2011, 12:56
Странно... Хотя... Сорри, наверное все-таки в ms, ибо я сейчас вспоминаю, что юзал эту ф-ию когда trace для работы с сетью делал, а там были у меня везде единицы измерения ms, значит скорее всего и у Вас также
1
 Аватар для leoned
31 / 31 / 0
Регистрация: 30.06.2011
Сообщений: 467
18.07.2011, 12:59  [ТС]
тогда всё встоёт на свои место спасибо !(кнопочку нажал
0
Программист
 Аватар для prZzZ
119 / 97 / 11
Регистрация: 22.03.2011
Сообщений: 244
18.07.2011, 13:19
C++
1
2
3
4
DWORD t1 = GetTickCount();
//...Профилируемый код...
DWORD t2 = GetTickCount();
DWORD time = t2 - t1;
Но это неточно...
Для большей точности нужно использовать счетчик монитора производительности:
C++
1
2
LARGE_INTEGER time;
QueryPerfomanceCounter(&time);
Ну а САМЫЙ точный метод - это использование счетчика меток реального времени TSC (Time Stamp Counter (Начиная с Pentium III)
C++
1
2
3
4
unsigned __int64 GetCycleCount(void)
{
    _asm rdtsc
}
Если ваш компилятор не понимает этой команды можно использовать машинное представление:
C++
1
2
_asm _emit 0x0F
_asm _emit 0x31
Но там есть геморрой:
этот счетчик нужно калибровать...
2
 Аватар для leoned
31 / 31 / 0
Регистрация: 30.06.2011
Сообщений: 467
18.07.2011, 13:23  [ТС]
Цитата Сообщение от prZzZ Посмотреть сообщение
Для большей точности нужно использовать счетчик монитора производительности:
а по подробней можно?(желательно сразу в код всунуть а то я нуб)
0
Программист
 Аватар для prZzZ
119 / 97 / 11
Регистрация: 22.03.2011
Сообщений: 244
18.07.2011, 13:53
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <windows.h>
 
int main()
{
    LARGE_INTEGER freq;
    LARGE_INTEGER t1;
    LARGE_INTEGER t2;
    if(QueryPerformanceFrequency(&freq))
    {
        QueryPerformanceCounter(&t1);
        //...Профилируемый код...
        QueryPerformanceCounter(&t2);
        double dt = t2.QuadPart - t1.QuadPart;
        double elapsed_time = 1000 * dt / freq.QuadPart; // время выполнения в миллисекундах...
    }
    else
    {
        // ОШИБКА!!! Счетчик монитора производительности не поддерживается системой...
    }
    return 0;
}
Добавлено через 11 минут
И, обратите внимание, на результат будет очень сильно влиять режим компиляции (Debug/Release).
7
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
18.07.2011, 13:53
Помогаю со студенческими работами здесь

как можно ипользовать многомерный массив?
Изучил массивы и стало интересно,как можно использовать многомерные массивы, в книги не написано про их использование а только упомянуто их...

Как ипользовать jquery в js коде на стороннем сайте?
Добрый день. мне нужно, чтобы на сайте подключался js файл, использующий библиотеку jquery. Но скрипт не видит jquery. Первый файл php: ...

Как написанную функцию на одной форме ипользовать в другой
Всем доброго времени суток. Имеется функция void Add(void). Прописал её прототип в formRegNewEvent.cpp, а так-же в formRegNewEvent.h,...

Можно ли ипользовать HSV палитру через JS и если да, то как?
Или подобную. Делаю рендом, и rgb с hex-ом мне очень не удобны. Мне бы HSV, но не могу найти как применять. И возможно ли вообще?...

Как можно изменить время в GetTickCount?
Как можно изменить время в GetTickCount? Или как изменить время работы в деспетчере задач?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
16
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru