![]() |
|
Модераторы: bsa |
![]()
|
|
| Proger10 |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 312 Регистрация: 16.12.2008 Репутация: нет Всего: нет |
Подскажите пожалуйста, как замерить время выполнения некоторого кода?
Вот один из вариантов взятый с форума:
Он выдаёт нули - покуда код выполняется быстрее, чем интервал клока Как бы замерять скорость работы именно такого кода? (в миллисекундах) Компиляторы, под которыми будет работать решение: GCC (Win + Lin). |
|||
|
||||
| knut |
|
||||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 588 Регистрация: 7.2.2006 Репутация: нет Всего: нет |
может так
или так
--------------------
|
||||||
|
|||||||
| Proger10 |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 312 Регистрация: 16.12.2008 Репутация: нет Всего: нет |
Последний работает также - видимо он целые секунды измеряет.
А первый.. где находится функция GetTickCount? |
|||
|
||||
| knut |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 588 Регистрация: 7.2.2006 Репутация: нет Всего: нет |
--------------------
|
|||
|
||||
| Proger10 |
|
||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 312 Регистрация: 16.12.2008 Репутация: нет Всего: нет |
Вообще, что-то определённо есть интересного в функции clock():
Код проги:
Если полученное число поделить на 100, то получаем примерное количество милисекунд.. Т.е. у меня в примере сработал интервал меньше одной секунды.. |
||||
|
|||||
| knut |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 588 Регистрация: 7.2.2006 Репутация: нет Всего: нет |
вот еще вариант
и все они возвращают в миллисекундах --------------------
|
||||
|
|||||
| Proger10 |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 312 Регистрация: 16.12.2008 Репутация: нет Всего: нет |
В линуксе у меня компилятор ругается на:
using namespace чего-то прописать? |
|||
|
||||
| andrew_121 |
|
|||
![]() Кодофей ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3448 Регистрация: 3.1.2008 Репутация: 10 Всего: 33 |
knut, Не совсем так. На сколько я помню, они манипулируют наносекундами. Но что-то в них меняется от компа к компу. Могу ошибаться.
http://msdn.microsoft.com/en-us/library/ms979201.aspx Вот из результатов одного из тестов:
-------------------- Удалил аккаунт. Прощайте! |
|||
|
||||
| Proger10 |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 312 Регистрация: 16.12.2008 Репутация: нет Всего: нет |
Так а можно примерчик небольшой с использованием этого QueryPerformanceFrequency? (с подключением нужных файлов) Покуда в линуксе так и не получилось скомпиллить..
|
|||
|
||||
| andrew_121 |
|
|||
![]() Кодофей ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3448 Регистрация: 3.1.2008 Репутация: 10 Всего: 33 |
Proger10, Это WINAPI функции. В Линукс, их быть не может. Разве что из Wine выдрать. Но смысл.
Пиши в Линукс раздел: http://forum.vingrad.ru/forum/c-c++program...Unix-Linux.html -------------------- Удалил аккаунт. Прощайте! |
|||
|
||||
| Proger10 |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 312 Регистрация: 16.12.2008 Репутация: нет Всего: нет |
А.. ну раз винапи, то мне конечно это не подходит.. я вначале говорил про небольшую кроссплатформенность решения.. (хотя бы вин и лин).
|
|||
|
||||
| andrew_121 |
|
|||
![]() Кодофей ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3448 Регистрация: 3.1.2008 Репутация: 10 Всего: 33 |
Proger10, Под виндавз используй эти, а под Линукс другие.
-------------------- Удалил аккаунт. Прощайте! |
|||
|
||||
| MAKCim |
|
|||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: 2 Всего: 207 |
насколько я помню, они возвращают значение счетчика TSC -------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
|||
|
||||
| lea |
|
||||||
|
Новичок Профиль Группа: Участник Сообщений: 2 Регистрация: 24.11.2010 Репутация: нет Всего: нет |
Подскажите, пожалуйста.
1. Каких файлов не хватает или что не так?
или
Ошибка: ShowMessage: идентификатор не найден Добавление #include <iostream> #include <time.h> #include <windows.h> using namespace std; не решает проблему. 2. В таком случае:
Ошибок компиляции нет, но функция, время выполнения которой узнавалось, выдает свои данные. Результата времени нет. Visual Studio. Это сообщение отредактировал(а) lea - 24.11.2010, 05:44 |
||||||
|
|||||||
| lea |
|
||||||||||
|
Новичок Профиль Группа: Участник Сообщений: 2 Регистрация: 24.11.2010 Репутация: нет Всего: нет |
Проблема решена. Таким способом:
всё компилируется без ошибок и считает. |
||||||||||
|
|||||||||||
![]()
|
| Правила форума "C/C++: Для новичков" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Для новичков | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |