Pergunta

Não tenho certeza se essa pergunta pertence ao StackOverflow, mas aqui está.

Preciso gerar um registro de data e hora usando C# para alguns dados que devem ser transferidos de uma parte para outra e preciso saber qual é a pior precisão do relógio do sistema em todo o sistema operacional (Windows, Linux e Unix)? O que eu preciso é descobrir a precisão de modo que todos os sistemas operacionais possam validar esse registro de data e hora.

Como exemplo, a resolução do relógio para os sistemas operacionais Windows Vista é de aproximadamente 10 a 15 milissegundos.

Foi útil?

Solução

Interessante. Os principais sistemas operacionais têm uma resolução pior - centissegundo (0,01 segundos), embora isso seja frequentemente incorporado a mais precisão.

O Linux oferece resolução de microssegundos em seus registros de data e hora (ver man utime) dependendo do hardware do relógio do computador. Windows NT/Win2K/XP/etc. Ofereça precisão de milissegundos em registros de data e hora (usando apenas NTFs), embora seja responsável por todos os registros de data e hora do sistema em 0.000 000 1 Segunda unidades (dez milhões por segundo).

Se preciso e É necessária uma resolução de tempo precisa entre os sistemas, os receptores GPS atingem facilmente 100 nanossegundo precisão como um Efeito colateral de como eles funcionam, e muitos modelos baratos são assim como 10 ns. Modelos GPS especiais disponibilizar o tempo derivado para uso externo.

Outras dicas

Você está procurando gerar algo como um UNIX Timestamp para os dados? Ou encontrar um registro de data e hora que não colidem com um arquivo existente? Se for mais tarde, você sempre pode usar carrapatos.

O problema com qualquer carimbo de data / hora "longo" é que ele será relativo à máquina que a gera, mas não garantirá a não colisão no outro sistema, pois os relógios podem ser definidos de maneira diferente (não flutuando, mas na verdade devem ser definidos de maneira diferente).

Se os dados forem seguros/sensíveis e você estiver olhando para um mecanismo baseado em tempo para as chaves de sincronização (Ala Kerberos) Eu não sugeriria rolar o seu próprio, pois há muitos obstáculos a serem superados, especialmente nos sistemas de sincronização e mantê-los sincronizados.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top