powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / функции time
19 сообщений из 19, страница 1 из 1
функции time
    #33966659
Grunge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
как задать переменной типа t_time значение в 1 секунду?
//дело в том, что нужно узнать сколько тех или иных операций производится за секунду
...
Рейтинг: 0 / 0
функции time
    #33966688
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
time_t t;
t= 1 ;
...
Рейтинг: 0 / 0
функции time
    #33966710
nikname
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
clock_t t;
CLOCK_PER_SEC

подробностей не помню, гляньте хелп. Но лучше использовать таймер.
...
Рейтинг: 0 / 0
функции time
    #33966733
Grunge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2 nikname
быть может у вас есть исходник? ато я никак не возьму в толк как отпределить интервал в одну секунду между выполнением операции...
...
Рейтинг: 0 / 0
функции time
    #33967022
Akh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Grunge2 nikname
быть может у вас есть исходник? ато я никак не возьму в толк как отпределить интервал в одну секунду между выполнением операции...

Обычно я использую gettimeofday, если нельзя тормозить процесс (например, вычисление таймаутов).
...
Рейтинг: 0 / 0
функции time
    #33967815
nikname
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: plaintext
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.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
// crt_clock.c
/* This example prompts for how long
 * the program is to run and then continuously
 * displays the elapsed time for that period.
 */

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

void sleep( clock_t wait );

int main( void )
{
   long    i = 6000000L;
   clock_t start, finish;
   double  duration;

   /* Delay for a specified time. */
   printf( "Delay for three seconds\n" );
   sleep( (clock_t) 3  * CLOCKS_PER_SEC );
   printf( "Done!\n" );

   /* Measure the duration of an event. */
   printf( "Time to do %ld empty loops is ", i );
   start = clock();
   while( i-- ) 
      ;
   finish = clock();
   duration = (double)(finish - start) / CLOCKS_PER_SEC;
   printf( "%2.1f seconds\n", duration );
}

/* Pauses for a specified number of milliseconds. */
void sleep( clock_t wait )
{
   clock_t goal;
   goal = wait + clock();
   while( goal > clock() )
      ;
}
...
Рейтинг: 0 / 0
функции time
    #33967922
Akh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сомневаюсь в точности такого таймера в ОС отличных от ДОС, в силу их многозадачности.

Кстати, в линухах, думаю, что очень часто это будет работать правельно, т.к. такие циклы блокируют все процессы и потоки системы. Но опять же не факт.
...
Рейтинг: 0 / 0
функции time
    #33967929
nikname
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AkhСомневаюсь в точности такого таймера в ОС отличных от ДОС, в силу их многозадачности.

Кстати, в линухах, думаю, что очень часто это будет работать правельно, т.к. такие циклы блокируют все процессы и потоки системы. Но опять же не факт.
Не сомневайтесь - хреново там с точностью. Но спрашивали про time_t.
...
Рейтинг: 0 / 0
функции time
    #33968814
Grunge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
nikname
Код: plaintext
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.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
// crt_clock.c
/* This example prompts for how long
 * the program is to run and then continuously
 * displays the elapsed time for that period.
 */

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

void sleep( clock_t wait );

int main( void )
{
   long    i = 6000000L;
   clock_t start, finish;
   double  duration;

   /* Delay for a specified time. */
   printf( "Delay for three seconds\n" );
   sleep( (clock_t) 3  * CLOCKS_PER_SEC );
   printf( "Done!\n" );

   /* Measure the duration of an event. */
   printf( "Time to do %ld empty loops is ", i );
   start = clock();
   while( i-- ) 
      ;
   finish = clock();
   duration = (double)(finish - start) / CLOCKS_PER_SEC;
   printf( "%2.1f seconds\n", duration );
}

/* Pauses for a specified number of milliseconds. */
void sleep( clock_t wait )
{
   clock_t goal;
   goal = wait + clock();
   while( goal > clock() )
      ;
}

да, я видел этот код. но дело в том, что здесь останавливается выполнение программы на заданное число секунд (3 * CLOCKS_PER_SEC). мне же надо производить операции (к примеру сложение) на протяжении определённого периода времени (1 * CLOCKS_PER_SEC), и получить общее число этих самых процессов
...
Рейтинг: 0 / 0
функции time
    #33969502
nikname
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Попробуйте выполнить какое-то большое количество процессов.

double ProcPerSec = 1000000;
clock_t start=clock();
Do1000000();
cout<<1000000./(clock()-start)*CLOCK_PER_SEC
...
Рейтинг: 0 / 0
функции time
    #33969548
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Grungeмне же надо производить операции (к примеру сложение) на протяжении определённого периода времени (1 * CLOCKS_PER_SEC), и получить общее число этих самых процессов
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
#define TIMEOUT_IN_SECONDS  100 
time_t t;
int i;

i =  0 ;
t = time( 0 );
while( (time( 0 ) - t) < TIMEOUT_IN_SECONDS ) {
  i++;
  // еще какая-нибудь глупость
}
printf ("Цикл сделал %d итераций за %d секунд\n", i, TIMEOUT_IN_SECONDS);
...
Рейтинг: 0 / 0
функции time
    #33969813
Akh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
White Owl...

:) Большой процент времени уйдет на определение этого времени.
...
Рейтинг: 0 / 0
функции time
    #33972270
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Akh White Owl...
:) Большой процент времени уйдет на определение этого времени.Пусть сначала с этим разберется.

Потом подрастет, переползет на РТОС и будет там создавать отдельные таймеры тормозящие считающий поток в точно заданую миллисекунду. Но для такого Grunge прийдется еще мноооого книжек прочитать :)
...
Рейтинг: 0 / 0
функции time
    #33972924
Akh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
White Owl Akh White Owl...
:) Большой процент времени уйдет на определение этого времени.Пусть сначала с этим разберется.

Потом подрастет, переползет на РТОС и будет там создавать отдельные таймеры тормозящие считающий поток в точно заданую миллисекунду. Но для такого Grunge прийдется еще мноооого книжек прочитать :)

Самое главное, что меня смущает (на примере линукса) - если поток не падает в айдле хоть иногда, то он может зарубить систему. Тогда про таймеры, вообще, нельзя висти речи.

Мне кажется, что наиболее верное решение задачи: при запуске программы сделать замеры, за сколько время выполнится определенное количество операций, потом настроить параметры и работать без всяких таймеров.
...
Рейтинг: 0 / 0
функции time
    #33975192
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AkhСамое главное, что меня смущает (на примере линукса) - если поток не падает в айдле хоть иногда, то он может зарубить систему. Тогда про таймеры, вообще, нельзя висти речи.Эээээ? Кто-то что-то пальцезаплетающее пил :)

AkhМне кажется, что наиболее верное решение задачи: при запуске программы сделать замеры, за сколько время выполнится определенное количество операций, потом настроить параметры и работать без всяких таймеров.Нет, если программа должна синхронизироваться по времени, то без таймеров не обойтись.
Как бы точно ты ни пытался замерять скорость работы - ты никогда не добьешся идеальной точности. Хотя бы потому, что во всех современных системах на железячном уровне существуют прерывания, которые могут влезть между двумя любыми командами твоей вывереной по тактам программы и заморозить твою программу на любой период.
...
Рейтинг: 0 / 0
функции time
    #33975308
Grunge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
White Owl Grungeмне же надо производить операции (к примеру сложение) на протяжении определённого периода времени (1 * CLOCKS_PER_SEC), и получить общее число этих самых процессов
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
#define TIMEOUT_IN_SECONDS  100 
time_t t;
int i;

i =  0 ;
t = time( 0 );
while( (time( 0 ) - t) < TIMEOUT_IN_SECONDS ) {
  i++;
  // еще какая-нибудь глупость
}
printf ("Цикл сделал %d итераций за %d секунд\n", i, TIMEOUT_IN_SECONDS);

вот это именно то, что мне надо! но видно какая-то проблема в цикле, не выводится колличество итераций, которые, наверное, и не происходят.
...
Рейтинг: 0 / 0
функции time
    #33976091
maXmo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AkhСамое главное, что меня смущает (на примере линукса) - если поток не падает в айдле хоть иногда, то он может зарубить систему.бедный линух. Сочувствую

White OwlКак бы точно ты ни пытался замерять скорость работы - ты никогда не добьешся идеальной точности. Хотя бы потому, что во всех современных системах на железячном уровне существуют прерывания, которые могут влезть между двумя любыми командами твоей вывереной по тактам программы и заморозить твою программу на любой период.и они не могут влезть точно перед вызовом таймера и снова заморозить всё на любой период?
...
Рейтинг: 0 / 0
функции time
    #33976135
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maXmoи они не могут влезть точно перед вызовом таймера и снова заморозить всё на любой период?Могут. Так что единственный способ получить один миллиард однотактовых операций на гигагерцовом процессоре это сделать компьютер без единого контроллера прерываний :)
...
Рейтинг: 0 / 0
функции time
    #33976784
maXmo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
если система разрешит (а она не разрешит), можно сделать cli
...
Рейтинг: 0 / 0
19 сообщений из 19, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / функции time
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]