Сеять постоянно с Performance Counter? - PullRequest
1 голос
/ 21 февраля 2010

Вызывает ли заполнение каждый раз, когда вы используете случайную функцию с QueryPerformanceCounter (), плохую работу? Есть ли алгоритм проверки качества случайного алгоритма?

Ответы [ 2 ]

2 голосов
/ 21 февраля 2010

Как правило, да. Обычно вы хотите запустить генератор один раз во время запуска программы и после этого оставить его в покое. Регулярное повторное посев с QPC, вероятно, сделает результаты значительно более предсказуемыми - QPC почти постоянно увеличивается, и если вы используете его несколько раз без взаимодействия с пользователем, разница между двумя семенами может быть почти постоянной, даже если сами семена различны.

0 голосов
/ 30 марта 2010

Вы не говорите, как часто вы выполняете посев, но если в тесном цикле вы должны знать, что QueryPerformanceCounter () может быть довольно медленным вызовом, и время выполнения вызова может варьироваться от компьютера к компьютеру (если у них разные материнские платы с разным оборудованием синхронизации.

Так что, если вам не нужно многократно вызывать QueryPerformanceCounter () (как в профилировщике), не делайте этого.

Вы могли бы также начать сеять с помощью GetTickCount () или timeGetTime (), если вам нужно выполнить несколько сеансов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...