Los programas que usan la función QueryPerformanceCounter pueden tener un rendimiento deficiente

En este artículo se proporciona una solución a un problema que se produce en equipos de 32 bits y equipos basados en x64 que tienen habilitada la tecnología AMD Cool'n'Quiet en el BIOS.

Se aplica a: Windows Server 2012 R2, Windows 10, todas las ediciones
Número de KB original: 895980

Síntomas

En los siguientes sistemas operativos:

  • Windows Server 2000
  • Windows XP
  • Windows Server 2003
  • O.S. invitado de Windows Server 2000.
  • O.S. invitado de Windows XP
  • O.S. invitado de Windows Server 2003.

Un programa que usa la función para consultar el QueryPerformanceCounter tiempo del sistema puede tener un rendimiento deficiente.

Por ejemplo:

Cuando se usa el comando ping para enviar paquetes del Protocolo de mensajes de control de Internet (ICMP) a un equipo remoto, la respuesta puede mostrar tiempos de respuesta negativos. Por ejemplo, el siguiente comando ping puede generar las siguientes respuestas:

C:\>ping x.x.x.x

Resultado:

Hacer ping a x.x.x.x con 32 bytes de datos:

Respuesta de x.x.x.x: bytes=32 time=-59ms TTL=128
Respuesta de x.x.x.x: bytes=32 time=-59ms TTL=128
Respuesta de x.x.x.x: bytes=32 time=-59ms TTL=128
Respuesta de x.x.x.x: bytes=32 time=-59ms TTL=128

Además, si usa contadores de rendimiento para disco lógico o disco físico, podría mostrar incorrectamente un valor de latencia alta.

Nota:

Este problema se produce en un equipo que ejecuta una versión basada en x86 de Windows o una versión basada en x64 de Windows.

Causa

Este problema se produce cuando el equipo tiene la tecnología AMD Cool'n'Quiet (núcleos duales AMD) habilitada en el BIOS o en algunos procesadores intel multinquilino. Los sistemas de varios núcleos o multiprocesador pueden encontrarse con un desfase del contador de marca de tiempo (TSC) cuando no se sincroniza el tiempo entre diferentes núcleos. Los sistemas operativos que usan TSC como recurso de mantenimiento temporal pueden experimentar el problema.

Solución

Para resolver este problema, compruebe con el proveedor de hardware si hay disponible una nueva actualización de controlador o firmware para corregir el problema.

Nota:

La instalación del controlador puede agregar el modificador /usepmtimer en el archivo Boot.ini. Este modificador se describe en la sección "Solución alternativa".

Solución alternativa

Para solucionar este problema, actualice el BIOS en el equipo. O bien, modifique el archivo Boot.ini para usar el modificador /usepmtimer. Para ello, siga estos pasos:

  1. Inicie sesión en el equipo con una cuenta que tenga credenciales administrativas.

  2. Haga clic en Inicio, en Ejecutar, escriba notepad c:\boot.iniy, a continuación, haga clic en Aceptar.

  3. En el archivo Boot.ini, una línea que comienza por "default" se encuentra en la sección "[boot loader]". Esta línea especifica la ubicación del sistema operativo predeterminado. La línea puede aparecer de la siguiente manera:

    default=multi(0)disk(0)rdisk(0)partition(2)\WINDOWS
    

    En la sección "[sistemas operativos]", busque la línea del sistema operativo que corresponde a la línea "predeterminada". Por ejemplo, si el equipo ejecuta Microsoft Windows Server 2003, Enterprise x64 Edition, la línea debe ser similar a la siguiente:

    multi(0)disk(0)rdisk(0)partition(2)\WINDOWS="Windows Server 2003 Enterprise x64 Edition" /fastdetect /NoExecute=OptIn
    
  4. Al final de la línea, agregue un espacio y escriba /usepmtimer. La línea ahora debe ser similar a la siguiente.

    multi(0)disk(0)rdisk(0)partition(2)\WINDOWS="Windows Server 2003 Enterprise x64 Edition" /fastdetect /NoExecute=OptIn /usepmtimer
    
  5. Guarde el archivo y, a continuación, salga del Bloc de notas.

  6. Reinicie el equipo.

A continuación se muestra un archivo de Boot.ini de ejemplo para un sistema que contiene el modificador /usepmtimer.

[boot loader]  
timeout=0  
default=multi(0)disk(0)rdisk(0)partition(2)\\WINDOWS  
[operating systems]  
multi(0)disk(0)rdisk(0)partition(2)\WINDOWS="Windows Server 2003 Enterprise x64 Edition" /fastdetect /NoExecute=OptIn /usepmtimer

Nota:

El archivo Boot.ini se encuentra en la carpeta raíz de la unidad del sistema.
El uso de la configuración /UsePmTimer puede suponer una disminución del rendimiento.

Soporte técnico para versiones de Microsoft Windows basadas en x64

Si el hardware venía con una edición de Windows x64 ya instalada, el fabricante de hardware proporciona soporte técnico y asistencia para la edición Windows x64. En este caso, el fabricante de hardware proporciona soporte porque la edición x64 de Windows estaba incluida con el hardware. Es posible que el fabricante de hardware haya personalizado la instalación de la edición x64 de Windows usando componentes únicos. Los componentes únicos pueden incluir controladores de dispositivo específicos o configuraciones opcionales para maximizar el rendimiento del hardware. Microsoft proporcionará asistencia con un esfuerzo razonable si necesita ayuda técnica con una edición x64 de Windows. Sin embargo, es posible que tenga que ponerse en contacto directamente con el fabricante. El fabricante está mejor cualificado para dar soporte al software que instaló en el hardware. Si compró una edición x64 de Windows, como una edición x64 de Microsoft Windows Server 2003 por separado, póngase en contacto con Microsoft para obtener soporte técnico.

Aviso de declinación de responsabilidades sobre la información de terceros

Los productos de otros fabricantes que se mencionan en este artículo han sido creados por compañías independientes de Microsoft. Microsoft no ofrece ninguna garantía, ya sea implícita o de otro tipo, sobre la confiabilidad o el rendimiento de dichos productos.