Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

224
Visualizações
El archivo parece tener una marca de tiempo antes de que se cree

La siguiente prueba siempre falla (esto se ejecuta en un sistema Linux, la pregunta no es sobre otros sistemas operativos):

 from time import time from decimal import Decimal from pathlib import Path def test_timing(): start = Decimal(time()) p = Path(__file__).parent / 'testfile.txt' # does not yet exist p.touch() mt = p.stat().st_mtime p.unlink() # unlinked before the failing assert > assert start <= mt E AssertionError: assert Decimal('1640930671.75709438323974609375') <= 1640930671.7534654

La brecha es siempre de 3 a 7 ms.

¿Cómo es posible que Decimal(time()) al inicio devuelva una marca de tiempo posterior al archivo que se crea dos líneas después?

¿Hay una compensación entre las marcas de tiempo de Python y las de Linux? ¿Python continúa creando el archivo antes de que finalice la llamada Decimal(time()) ? ¿Que me estoy perdiendo aqui?

EDITAR: Debería haber mencionado que es un sistema de archivos ext4.

over 4 years ago · Santiago Trujillo
1 Respostas
Responde à pergunta

0

El sistema de archivos ext4 usa current_fs_time para capturar la marca de tiempo del kernel. Para mayor eficiencia, la marca de tiempo del kernel es un valor almacenado en caché, que solo se actualiza a intervalos del programador, que es de aproximadamente 10 ms. Por lo tanto, el tiempo podría tener hasta 10 ms de antigüedad en el momento en que se almacena.

Como nota al margen, no tiene sentido convertir la marca de tiempo a Decimal . El valor de C es un doble, que solo tiene alrededor de 17 dígitos. Eso significa que llegas a microsegundos. Convertir a Decimal no le da ninguna precisión adicional; los otros dígitos son esencialmente aleatorios.

over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda