Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

338
Views
rendimiento.ahora() vs Fecha.ahora()

¿Cuál es la diferencia entre performance.now() y Date.now() ?

¿Debería considerar performance.now() como reemplazo de Date.now() ya que performace.now() es más consistente e independiente?

over 4 years ago · Santiago Trujillo
3 answers
Answer question

0

Ambos sirven para diferentes propósitos.

performance.now() es relativo a la carga de la página y más preciso en órdenes de magnitud. Los casos de uso incluyen evaluación comparativa y otros casos en los que se requiere un tiempo de alta resolución, como medios (juegos, audio, video, etc.)

Cabe señalar que performance.now() solo está disponible en los navegadores más nuevos (incluido IE10+).

Date.now() es relativo a la época de Unix (1970-01-01T00:00:00Z) y depende del reloj del sistema. Los casos de uso incluyen la misma manipulación de fechas desde el comienzo de JavaScript.

Consulte Cuando los milisegundos no son suficientes performance.now método performance.now and now (Internet Explorer) - MSDN para obtener más información.

La especificación oficial de W3C se puede encontrar aquí: API de tiempo de alta resolución

over 4 years ago · Santiago Trujillo Report

0

Date.now() devuelve la cantidad de milisegundos transcurridos desde el 1 de enero de 1970 a las 00:00:00 UTC, performance.now() devuelve la cantidad de milisegundos, con microsegundos en la parte fraccionaria, desde performance.timing.navigationStart , el inicio de navegación del documento, a la llamada performance.now() . Otra diferencia importante entre Date.now() y performance.now() es que este último aumenta monótonamente, por lo que la diferencia entre dos llamadas nunca será negativa.

Para una mejor comprensión visita el enlace .

over 4 years ago · Santiago Trujillo Report

0

Lo primero que noté fue que performance.now() es 4 veces más lento que Date.now() (400k operaciones frente a 100k en mi computadora). Sin embargo, si solo está contando, usar performance.now() es la mejor opción. Depende puramente del tiempo desde que el código comenzó a ejecutarse, y los cambios de reloj no afectan el tiempo. También es más preciso: contarnos (microsegundos) en lugar de ms.

En cuanto al soporte, Date.now() tiene un poco más de soporte que performance.now() , ya que ambos son compatibles con los navegadores modernos e incluso con IE10/11 .

new Date().getTime() tiene aún más soporte (solo un poco) y es 2 veces más lento que Date.now Date.now() . Es más lento porque crea un objeto y luego llama a algo.

Sin embargo, esta página de caniuse.com muestra que performance.now() casi siempre está bien, en el 97,9 % (a partir de ahora) de los casos.

(De aquí en adelante solo me referiré a Date.now() , pero new Date.getTime() es lo mismo en los casos a continuación)

Uso

Date.now() puede (y debe) usarse para darse cuenta de si ha pasado algún tiempo, suponiendo que la velocidad sea una preocupación (muy importante): puede obtener fácilmente el cuadro correcto en una computadora de 60 fps. también puede servir para relojes. Cuenta cuántos milisegundos han pasado desde la época de Unix (ver la respuesta superior). Para aplicaciones que requieren un poco más de precisión (ver más abajo), se puede usar performance.now() . Se comporta exactamente igual que Date.now() si está usando un temporizador (porque todavía cuenta en milisegundos), excepto que es más preciso. Para usar performance.now() como un Date.now() u objeto (ligeramente) más preciso, agregue performance.timing.navigationStart al valor. Esto parece estar a unos pocos milisegundos del objeto Date.now() , pero no estoy seguro de quién es el culpable.

Exactitud

Por lo que puedo decir, performance.now() es solo 10 veces más preciso en comparación con Date.now() en mi escritorio Chrome: considerando saltos de tiempo de 0.1ms, sin embargo, esta precisión es lo suficientemente buena para la mayoría de las aplicaciones basadas en el tiempo. (Lea la sección de Firefox para obtener más información sobre su precisión) Puede parecer más preciso, pero no lo es: está intencionalmente limitado por razones de seguridad, ya que la explotación del tiempo podría permitir que usuarios maliciosos accedan a otras aplicaciones .

Firefox

Lamentablemente, este rendimiento (de 0,1 ms) no es posible si tiene usuarios de Firefox y no tiene acceso a encabezados de origen cruzado. Para habilitarlo, coloque Cross-Origin-Opener-Policy: same-origin y Cross-Origin-Embedder-Policy: require-corp en su documento. Los usuarios también pueden aumentar esta velocidad a 100 ms (o más). Visite la documentación de Mozilla para obtener más información.

over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!