Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 14, средняя оценка - 4.64
BESSON_off
3 / 0 / 7
Регистрация: 08.07.2013
Сообщений: 351
#1

Как узнать скорость выполнения программы? - C++

22.07.2013, 18:19. Просмотров 2963. Ответов 16
Метки нет (Все метки)

Должна же быть какая то функция или метод, чтобы узнать время выполнения программы, или возможно есть инструменты в MVS2010 для анализа этой информации?
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.07.2013, 18:19
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Как узнать скорость выполнения программы? (C++):

Как узнать тип шаблонного класса во время выполнения программы?
Тоесть: имеем класс list<int> или list<double>, и как узнать какой это тип? Ну...

Как узнать кодировку вывода в консоль во время выполнения программы?
Привет всем! Я новичок, и возникла идея написать консольное приложение для...

Скорость выполнения программы
Здравствуйте, уважаемые форумчане. Решил задаться таким вопросом. Какой из...

От чего зависит скорость выполнения программы?
от чего больше всего зависит скорость выполнения программы?

Найти количество счастливых билетов учитывая скорость выполнения программы
Найти количество счастливых билетов учитывая скорость выполнения...

Как узнать время выполнения алгоритма
Мне нужно сравнить несколько алгоритмов сортировки. Но таким способом как у...

16
alsav22
5438 / 4833 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
22.07.2013, 18:33 #2
Лучший ответ Сообщение было отмечено как решение

Решение

Как-то так:
C++
1
2
3
4
clock_t t1 = clock();
...
clock_t t2 = clock();
cout << (t2 - t1 + .0) / CLOCKS_PER_SEC << endl;
4
Teranozavr
Заблокирован
22.07.2013, 18:33 #3
Вот
0
Миниатюры
Как узнать скорость выполнения программы?  
Retyrn0
45 / 45 / 5
Регистрация: 24.06.2013
Сообщений: 677
Завершенные тесты: 1
22.07.2013, 19:07 #4
GetTickCount() что может быть лучше?
0
BigLow
55 / 55 / 6
Регистрация: 07.07.2013
Сообщений: 345
22.07.2013, 19:16 #5
еще таким способом можно
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
#include <ctime>
 
int main()
{
    time_t t1=time(NULL);
 
    /*** что-то делаем ***/
 
    time_t t2=time(NULL);
 
    std::cout << "Время работы программы равно " << t2-t1 << std::endl;
 
    system("pause");
    return 0;
}
0
alsav22
5438 / 4833 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
22.07.2013, 19:30 #6
Цитата Сообщение от BigLow Посмотреть сообщение
еще таким способом можно
С точностью до секунды.
0
Retyrn0
45 / 45 / 5
Регистрация: 24.06.2013
Сообщений: 677
Завершенные тесты: 1
22.07.2013, 19:37 #7
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
int main()
{
    unsigned int t1=GetTickCount();
 
    /*** что-то делаем ***/
 
    unsigned int t2=GetTickCount;
 
    cout << "Время работы программы равно " << t2-t1 << std::endl;
 
    system("pause");
    return 0;
}
// с точностью до милисекунды вроде
1
BigLow
55 / 55 / 6
Регистрация: 07.07.2013
Сообщений: 345
22.07.2013, 19:37 #8
Цитата Сообщение от alsav22 Посмотреть сообщение
С точностью до секунды.
да

Цитата Сообщение от Retyrn0 Посмотреть сообщение
// с точностью до милисекунды вроде
с точностью до секунды
0
Olivеr
412 / 408 / 95
Регистрация: 06.10.2011
Сообщений: 832
22.07.2013, 19:42 #9
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream>
#include <chrono>
 
int main()
{
    auto begin = std::chrono::high_resolution_clock::now();
 
    /// начало твоего кода
 
    /// конец твоего кода
 
    auto end = std::chrono::high_resolution_clock::now();
    auto time_took = std::chrono::duration_cast<std::chrono::duration<double>>(end - begin);
    std::cout << "Executed in " << time_took.count();
 
    return 0;
}
1
BigLow
55 / 55 / 6
Регистрация: 07.07.2013
Сообщений: 345
22.07.2013, 19:46 #10
Цитата Сообщение от BigLow Посмотреть сообщение
с точностью до секунды
я ошибся. свое сообщение не могу отредактировать
0
Retyrn0
45 / 45 / 5
Регистрация: 24.06.2013
Сообщений: 677
Завершенные тесты: 1
22.07.2013, 19:49 #11
Цитата Сообщение от BigLow Посмотреть сообщение
с точностью до секунды
C++
1
2
3
4
5
6
7
8
9
10
11
12
#include <stdio.h>
#include<windows.h>
 
int main()
{
    while(1)
    {
        system("cls");
        printf("%d",GetTickCount());
    }
    return 0;
}
Тогда объясните смену цифр в 1000 раз быстрее, чем раз в секунду?

Добавлено через 1 минуту
Цитата Сообщение от BigLow Посмотреть сообщение
я ошибся. свое сообщение не могу отредактировать
GetTickCount() не заметили? Ничего, бывает, думаю все это переживут)
0
BigLow
55 / 55 / 6
Регистрация: 07.07.2013
Сообщений: 345
22.07.2013, 19:53 #12
Цитата Сообщение от Retyrn0 Посмотреть сообщение
GetTickCount() не заметили?
ага. эта программа очень похожа на мою из 5-го поста
0
Retyrn0
45 / 45 / 5
Регистрация: 24.06.2013
Сообщений: 677
Завершенные тесты: 1
22.07.2013, 19:59 #13
Цитата Сообщение от BigLow Посмотреть сообщение
эта программа очень похожа на мою из 5-го поста
Копуринг+замена на функцию GetTickCount() = минимум времени =)
Надеюсь, Вы не обиделись на меня за полу-плагиат? ))
0
Kastaneda
Jesus loves me
Эксперт С++
4760 / 2963 / 341
Регистрация: 12.12.2009
Сообщений: 7,524
Записей в блоге: 2
Завершенные тесты: 1
22.07.2013, 20:05 #14
под Linux'ом
Bash
1
$time progname
0
castaway
Эксперт С++
4927 / 3034 / 453
Регистрация: 10.11.2010
Сообщений: 11,089
Записей в блоге: 10
Завершенные тесты: 1
22.07.2013, 21:41 #15
Цитата Сообщение от Retyrn0 Посмотреть сообщение
GetTickCount() что может быть лучше?
QueryPerformanceCounter()
1
BESSON_off
3 / 0 / 7
Регистрация: 08.07.2013
Сообщений: 351
23.07.2013, 20:03  [ТС] #16
Спасибо огромное ребята! Я и не надеялся получить такую объемную помощь
0
Retyrn0
45 / 45 / 5
Регистрация: 24.06.2013
Сообщений: 677
Завершенные тесты: 1
23.07.2013, 21:32 #17
Цитата Сообщение от castaway Посмотреть сообщение
QueryPerformanceCounter()
Я ждал этого комментария А как на счёт "Слишком хорошо - тоже не хорошо"?
0
23.07.2013, 21:32
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.07.2013, 21:32
Привет! Вот еще темы с решениями:

Как вы тестируете время выполнения программы?
Добрый день. Вопрос к олимпиадникам: как вы тестируете время выполнения...

Как уменьшить время выполнения программы?
Помогите пожалуйста сократить время выполнения программы. Работает за 5.008...

Скорость выполнения.
Есть консольное приложение, работающее с огромными текстовыми файлами,...

Как увидеть результат выполнения программы в Dev-C++ 4.9.9.2 ?
И ещё, когда запускаю exe-файл, вместо нормального текста какая-то абракадабра...


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

Или воспользуйтесь поиском по форуму:
17
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru