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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
DeadRipper
64 / 70 / 3
Регистрация: 25.06.2009
Сообщений: 244
#1

Sleep некорректно работает.. - C++

21.05.2011, 15:40. Просмотров 520. Ответов 0
Метки нет (Все метки)

решил затестить функцию слип созданием измерителя FPS

вот поток - который оповещает о том что прошла секунда, изменением переменной sec на 1 каждую секунду.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
bool sec=0;
CRITICAL_SECTION crs_fps_sec; 
USHORT fps=0;
 
DWORD WINAPI FpsSecondCounter(LPVOID param)
{
while(1)
{
EnterCriticalSection(&crs_fps_sec);
 
sec=1;
 
LeaveCriticalSection(&crs_fps_sec);
 
Sleep(1000); //ждем секунду и меняем триггер на 1
}
return 0;
};
вот функция в которой происходит и измерение FPS, после прорисовки.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
USHORT frames=0;
 
static inline void CountFps()
{
++frames; //считаем кадры
EnterCriticalSection(&crs_fps_sec);
 
        if(sec) //если секунда прошла
        {
        sec=0; //обнуляем триггер
        fps=frames; 
        frames=0; //обнуляем кадры
        }
 
LeaveCriticalSection(&crs_fps_sec);
 
}
FPS >1000 из этого следует что прорисовка выполняется более 1000 раз в секунду(все нормально)

но стоит поставить после LeaveCriticalSection(во второй функции) Sleep(1); FPS становится равно каким то 60 кадрам в секунду, а не постоянной тысяче(даже если прорисовка длится около 0.9 мс то FPS должно быть равно хотя бы 500),

почему так происходит, и можно как ни будь заменить слип более точной задержкой в одну милисекунду?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.05.2011, 15:40     Sleep некорректно работает..
Посмотрите здесь:

Некорректно работает - C++
Здравствуйте помогите пож-та с задачкой: Сформировать вещественный массив X1(N), N≤20, элементами которого являются случайные числа из...

Некорректно работает функция - C++
Функция Small_S должна находить короткое слово в строке str, а она почему-то выводит первое слово! Помогите решить проблему, буду очень...

Функция работает некорректно - C++
написал функцию,возвращающий нажатую клавишу: char func2(){ if(_kbhit()){ char c; c=_getch(); return c; } return 0; ...

Функция работает некорректно - C++
#include <iostream> using namespace std; short fill(double*, short); const short size = 5; int main() { double array;...

Некорректно работает программа - C++
При создании c1 все еще правильно. При выполнении операторов уже нет. Почему? #include <iostream> #define _USE_MATH_DEFINES #include...

некорректно работает программа - C++
Написала вот эту программу, она компилируется, но после ввода данных, вылазит ошибка. С чем это может быть связано? // f(x,y) = 3*x-y ...

Некорректно работает рандомизация - C++
В таком виде написана генерация рандомного числа: srand(time(NULL)); int f = rand()%7; при каждом запуске выбрасывается одно и то же...

Некорректно работает меню с++ - C++
Программа для работы со строками. Задаю строки сначала. Потом из списка меню я хочу выбрать действие над строкой. Но при выборе любого...

Некорректно работает find - C++
Дано:

libncurses некорректно работает - C++
#include <iostream> #include <cmath> #include <ncurses.h> using namespace std; class polar { private: float r; ...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

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