Форум программистов, компьютерный форум CyberForum.ru

clock_gettime() - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 39, средняя оценка - 4.97
hazerot
2 / 2 / 0
Регистрация: 13.05.2012
Сообщений: 46
15.05.2012, 21:50     clock_gettime() #1
Как использовать ее?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.05.2012, 21:50     clock_gettime()
Посмотрите здесь:

eclipse: clock_gettime error C++ Linux
C++ Linux Linux undefined symbol: clock_gettime

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ternsip
 Аватар для Ternsip
660 / 188 / 6
Регистрация: 10.05.2012
Сообщений: 595
15.05.2012, 21:56     clock_gettime() #2
в #include "windows.h" есть GetTickCount(); Возвращает время с начала работы приложения
как засечь:
int t=GetTickCount();
.
.
.
int CurrentTime=GetTickCount()-t;
Если я понимаю о чём вы
hazerot
2 / 2 / 0
Регистрация: 13.05.2012
Сообщений: 46
15.05.2012, 22:02  [ТС]     clock_gettime() #3
Эта функция не будет работать на линуксе
Ternsip
 Аватар для Ternsip
660 / 188 / 6
Регистрация: 10.05.2012
Сообщений: 595
15.05.2012, 22:15     clock_gettime() #4
Цитата Сообщение от hazerot Посмотреть сообщение
Эта функция не будет работать на линуксе
хахаха это логично, ну написали бы

Добавлено через 1 минуту

#include<time.h>
clock_t clock();
t1=clock();
t2-clock();
dr.curse
 Аватар для dr.curse
386 / 342 / 16
Регистрация: 11.10.2010
Сообщений: 1,907
15.05.2012, 22:16     clock_gettime() #5
в тут про нее написано
hazerot
2 / 2 / 0
Регистрация: 13.05.2012
Сообщений: 46
15.05.2012, 22:30  [ТС]     clock_gettime() #6
Спасибо, это я видел, но изза того что я не могу понять написанное там, я обратился на ваш форум в надежде, что вы мне поможете
Ternsip
 Аватар для Ternsip
660 / 188 / 6
Регистрация: 10.05.2012
Сообщений: 595
15.05.2012, 22:33     clock_gettime() #7
hazerot, Я вам помог?

Добавлено через 2 минуты
t1=clock();
.
//слоупочим
.
t2=clock();
cout<<t2-t1;
hazerot
2 / 2 / 0
Регистрация: 13.05.2012
Сообщений: 46
15.05.2012, 22:35  [ТС]     clock_gettime() #8
clock(); если я не ошибаюсь меряют кол-во тактов процессора, а нужны мили или нано секунды
Ternsip
 Аватар для Ternsip
660 / 188 / 6
Регистрация: 10.05.2012
Сообщений: 595
15.05.2012, 22:37     clock_gettime() #9
Цитата Сообщение от hazerot Посмотреть сообщение
clock(); если я не ошибаюсь меряют кол-во тактов процессора, а нужны мили или нано секунды
Это вам в реал тайме надо или для измерений, просто точные измерения не так вычисляются

Добавлено через 1 минуту
Обычно делают так:
засекли время.
n раз прогнали алгоритм.
получили полное время
ответ = полное время / n
hazerot
2 / 2 / 0
Регистрация: 13.05.2012
Сообщений: 46
15.05.2012, 22:37  [ТС]     clock_gettime() #10
Нужно для измерения времени выполнения кусков алгоритма, чтобы сравнивать и найти самый эффективный. Я думаю предпочтительней виртуальное время будет
Ternsip
 Аватар для Ternsip
660 / 188 / 6
Регистрация: 10.05.2012
Сообщений: 595
15.05.2012, 22:39     clock_gettime() #11
Цитата Сообщение от Ternsip Посмотреть сообщение

Добавлено через 1 минуту
Обычно делают так:
засекли время.
n раз прогнали алгоритм.
получили полное время
ответ = полное время / n
Уверяю вас, используйте этот метод инфа 100%
Infinity3000
 Аватар для Infinity3000
1057 / 576 / 24
Регистрация: 03.12.2009
Сообщений: 1,255
15.05.2012, 22:40     clock_gettime() #12
Цитата Сообщение от hazerot Посмотреть сообщение
clock(); если я не ошибаюсь меряют кол-во тактов процессора, а нужны мили или нано секунды
не ошибаетесь!

что бы получить секунды

C++
1
cout << t2 - t1 / (double)CLOCKS_PER_SEC
ну а перевести в

Цитата Сообщение от hazerot Посмотреть сообщение
мили или нано секунды
думаю проблем не будет!
Ternsip
 Аватар для Ternsip
660 / 188 / 6
Регистрация: 10.05.2012
Сообщений: 595
15.05.2012, 22:41     clock_gettime() #13
Infinity3000, Вы видели для чего нужны часы hazerot ?
Я исследовал алгоритмы и могу с уверенностью сказать метод n тестов - САМЫЙ ЛУЧШИЙ
Когда алгоритм долго выполняется, например секунд 10, то надобность в наносекундах отпадает
А метод N тестов можно довести не только до наносекунд, но и до 10^-INF секунд
hazerot
2 / 2 / 0
Регистрация: 13.05.2012
Сообщений: 46
15.05.2012, 22:45  [ТС]     clock_gettime() #14
Цитата Сообщение от Ternsip Посмотреть сообщение
Infinity3000, Вы видели для чего нужны часы hazerot ?
Я исследовал алгоритмы и могу с уверенностью сказать метод n тестов - САМЫЙ ЛУЧШИЙ
Когда алгоритм долго выполняется, например секунд 10, то надобность в наносекундах отпадает
А метод N тестов можно довести не только до наносекунд, но и до 10^-INF секунд
а не могли бы расписать тогда, метод который вы рекомендуете. Как его реализовать. Хотелось бы увидеть примитивную программу с данным методом
Ternsip
 Аватар для Ternsip
660 / 188 / 6
Регистрация: 10.05.2012
Сообщений: 595
15.05.2012, 22:51     clock_gettime() #15
Сейчас, без проблем =)

Добавлено через 5 минут
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#include <stdio.h>
#include <conio.h>
#include <iostream>
#include <cmath>
#include <vector>
 #include<time.h>
using namespace std;
int main(){
    const int n=10;
    vector <int> a(n);
    clock_t clock();
    int t1=clock();
    int ct=100000;// кол-во тестов
    for (int k=0;k<ct;k++)// прогоняем ct тестов
    {
        for (int i=0;i<n;i++)
            for (int i=0;i<n-1;i++)
                if (a[i]<a[i+1]) {a[i]=1;a[i+1]=2;};
    };
    float ans=clock()-t1;
    ans/=ct;// делим общее время на ct тестов
    cout<<ans<<" msec";// в мили секундах
    getch();
    return 0;
}
hazerot
2 / 2 / 0
Регистрация: 13.05.2012
Сообщений: 46
15.05.2012, 23:04  [ТС]     clock_gettime() #16
Спасибо вам больше
Ternsip
 Аватар для Ternsip
660 / 188 / 6
Регистрация: 10.05.2012
Сообщений: 595
20.05.2012, 21:20     clock_gettime() #17
hazerot, Вы просили для секунуд
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#include <stdio.h>
#include <conio.h>
#include <iostream>
#include <cmath>
#include <vector>
 #include<time.h>
using namespace std;
int main(){
    const int n=10;
    vector <int> a(n);
    clock_t clock();
    int t1=clock();
    int ct=100000;// кол-во тестов
    for (int k=0;k<ct;k++)// прогоняем ct тестов
    {
        for (int i=0;i<n;i++)
            for (int i=0;i<n-1;i++)
                if (a[i]<a[i+1]) {a[i]=1;a[i+1]=2;};
    };
    float ans=clock()-t1;
    ans/=ct;// делим общее время на ct тестов
    ans*=1000;
    cout<<ans<<" msec";// в секундах
    getch();
    return 0;
}
Yandex
Объявления
20.05.2012, 21:20     clock_gettime()
Ответ Создать тему
Опции темы

Текущее время: 19:06. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru