void MyFunc (int *a, int b)
{
//начать отсчет времениdo{
for ()
{
if
}
}while ()
//закончить отсчет времени и отобразить в Lebel
Label->Caption=time;
}
Какой функцией для этого воспользоваться и вообше реализовать в C++?
Смотри в сторону функций QueryPerformanceFrequency и QueryPerformanceCounter;
Примерно так: A>
A>void MyFunc (int *a, int b)
A>{
A> //начать отсчет времени QueryPerformanceCounter( &Start );
A> do{
A> for ()
A> {
A> if
A> }
A> }while ()
QueryPerformanceCounter( &Stop );
QueryPerformanceFrequency( &Freq );
time = ( Stop - Start ) / Freq;
A> //закончить отсчет времени и отобразить в Lebel
A> Label->Caption=time;
A>}
A>
Здравствуйте, asmodey, Вы писали:
A>Есть функция по сортировке массива, что то вроде A>
A>void MyFunc (int *a, int b)
A>{
A> //начать отсчет времени
A> do{
A> for ()
A> {
A> if
A> }
A> }while ()
A> //закончить отсчет времени и отобразить в Lebel
A> Label->Caption=time;
A>}
A>
A>Какой функцией для этого воспользоваться и вообше реализовать в C++?
Если в секундах то можно так:
#include <time.h>
.....
struct tm *datetime;
time_t lTime;
int Start,End;
.........
void MyFunc (int *a, int b)
{
time(&lTime);
datetime = localtime(&lTime);
Start=datetime->tm_sec; A> do{
A> for () A> { A> if A> } A> }while ()
time(&lTime);
datetime = localtime(&lTime);
End=datetime->tm_sec;
Здравствуйте, UgN, Вы писали:
UgN>Здравствуйте, asmodey, Вы писали:
UgN>Смотри в сторону функций QueryPerformanceFrequency и QueryPerformanceCounter;
UgN>Примерно так: A>>
A>>void MyFunc (int *a, int b)
A>>{
A>> //начать отсчет времени
UgN> QueryPerformanceCounter( &Start );
A>> do{
A>> for ()
A>> {
A>> if
A>> }
A>> }while ()
UgN>
UgN> QueryPerformanceCounter( &Stop );
UgN> QueryPerformanceFrequency( &Freq );
UgN> time = ( Stop - Start ) / Freq;
UgN>
A>> //закончить отсчет времени и отобразить в Lebel
A>> Label->Caption=time;
A>>}
A>>
UgN>
Два вопроса: 1)"Stop, Start, Freq" переменные какого типа? и 2)нужно ли подключать .h-файл и если да то какой?
Здравствуйте, Vsim, Вы писали:
V>Здравствуйте, asmodey, Вы писали:
A>>Есть функция по сортировке массива, что то вроде A>>
A>>void MyFunc (int *a, int b)
A>>{
A>> //начать отсчет времени
A>> do{
A>> for ()
A>> {
A>> if
A>> }
A>> }while ()
A>> //закончить отсчет времени и отобразить в Lebel
A>> Label->Caption=time;
A>>}
A>>
A>>Какой функцией для этого воспользоваться и вообше реализовать в C++?
V>Если в секундах то можно так: V>#include <time.h> V>..... V>struct tm *datetime; V>time_t lTime; V>int Start,End; V>......... V>void MyFunc (int *a, int b) V>{ V> time(&lTime); V> datetime = localtime(&lTime); V> Start=datetime->tm_sec; A>> do{
A>> for () A>> { A>> if A>> } A>> }while () V> time(&lTime); V> datetime = localtime(&lTime); V> End=datetime->tm_sec;
Label->>Caption=AnsiString(End-Start)+" секунд";
Спасибо! но скажи как сделать чтоб считал в милисекундах
Здравствуйте, UgN, Вы писали:
UgN>Смотри в сторону функций QueryPerformanceFrequency и QueryPerformanceCounter;
UgN>Примерно так: A>>
A>> //начать отсчет времени
UgN> QueryPerformanceCounter( &Start );
A>> do{
A>> }while ()
UgN>
UgN> QueryPerformanceCounter( &Stop );
UgN> QueryPerformanceFrequency( &Freq );
UgN> time = ( Stop - Start ) / Freq;
UgN>
A>> //закончить отсчет времени и отобразить в Lebel
A>> Label->Caption=time;
A>>
Если в процессе работы произойдет переключение потоков, то полученное значение не будет правильным.
В-прочем, я сомневаюсь, что для такой задачи это критично...
Здравствуйте, Михаил Челноков, Вы писали:
МЧ>Если в процессе работы произойдет переключение потоков, то полученное значение не будет правильным. МЧ>В-прочем, я сомневаюсь, что для такой задачи это критично...
Да, забыл добавить что для получения суперточного значения можно воспользоваться функцией GetThreadTimes (for NT-based systems only!).
Здравствуйте, Flamer, Вы писали:
F>Нолик — за оверквотинг. А по существу — в одной секунде 1000 миллисекунд... Намек прозрачен?
Нолик, за то что не разобравшись нули лепишь.
localtime возвращает время с точностью до секунд, поэтому в миллисекундах мерять с ее помощью не удасться.
asmodey _ftime меряет с миллисекундами. Также читай про QueryPerformanceCounter и QueryPerformanceFrequency RTFM — читай документацию. А в целом ноль заслуженный — нечего спрашивать то, что легко самому можно решить.
Re[4]: таймер выполнения функции
От:
Аноним
Дата:
04.04.03 21:16
Оценка:
Здравствуйте, Flamer, Вы писали:
F>Здравствуйте, asmodey, Вы писали:
F>[]
A>>Спасибо! но скажи как сделать чтоб считал в милисекундах
F>Нолик — за оверквотинг. А по существу — в одной секунде 1000 миллисекунд... Намек прозрачен?
Регестрироватся не хочу — но свое фи выскажу Человек на пирядки меньше тебя сообщений написал, а ты ему ноль ставишь не хорошо