Какая из этих двух функций времени лучше?
У меня есть форма на моем веб-сайте, которая подана тысячами пользователей каждые микросекунды или меньше, таким образом, тысячи запросов одновременно на моем сервере.
Поэтому я хочу использовать тот, который не использует сон во время выполнения. Кроме того, насколько уникальным является $_SERVER['REQUEST_TIME']
и time()
? Оба изменения меняются каждые микросекунды?
Будет ли $ _SERVER ['REQUEST_TIME'] изменяться каждый раз, когда я отправлю форму? Например, функция time () будет меняться при каждой разнице во времени.
Мне нужно предоставить уникальный URL-адрес пользователю для проверки, в котором я добавляю уникальный результат, сгенерированный из одного из двух? Кроме того, использование microtime () сделает PHP спящим? не так ли?
Это зависит.
$_SERVER['REQUEST_TIME']
соответствует времени, когда запрос запущен, веб-сервер предоставляет эти данные.
time()
фактически запускает syscall, чтобы проверить время, когда эта строка вызывается.
Вы должны быть более конкретными в том, что вы хотите сделать, чтобы мы могли дать вам полные ответы.
time()
изменяется один раз в секунду. microtime()
(опционально, с (true)
) чаще.
$_SERVER['REQUEST_TIME']
устанавливается при запуске PHP-процесса, но это просто простой поиск переменных и так быстрее. Большую часть времени вам не требуется микросекундное разрешение, особенно если процесс будет выполняться в течение секунды в любом случае для создания веб-страницы.
от php.net:
$ _SERVER [ 'REQUEST_TIME_FLOAT'];
Временная метка начала запроса с точностью до микросекунды.
http://php.net/manual/en/reserved.variables.server.php (осторожно, см. примечание Алистера об использовании REQUEST_TIME)
$_SERVER['REQUEST_TIME']
на время начала сеанса, он полностью отличается от использования time()
или microtime()
тем, что он является постоянным для этого запуска.
вы должны учитывать миллисекунды на основе microtime ()
$milliseconds = round(microtime(true) * 1000);
Вы должны использовать time () или microtime () или uniqid (), если это необходимо для целей проверки.
Вопрос в том, почему вам нужно время, чтобы быть уникальным?
EDIT: Потому что вы отредактировали свой вопрос.
$ _SERVER ['REQUEST_TIME'] предоставит вам временную метку начала запроса. Он изменится в зависимости от времени, когда пользователь делает запрос.