CodeXtremeOS
← Win Optimizer

⏱️ Latencia y Timers

Optimización avanzada del sistema Windows

⏱️

Latencia y Timers

Optimization Category

Entendiendo Latencia y Timers

Medium

Aprende sobre factores de latencia del sistema: interrupciones, DPC, timers y manejo de mensajes

💡 Entender las fuentes de latencia ayuda a identificar oportunidades de optimización

Fuentes de Latencia del Sistema

ℹ️
La latencia del sistema viene de múltiples fuentes: - Procesamiento de interrupciones (IRQ/DPC) - Resolución de timer de Windows (15.625ms por defecto) - Overhead de High Precision Event Timer (HPET) - Procesamiento de cola de mensajes de Windows Cada uno puede ser optimizado para gaming de baja latencia.

Impacto de Latencia en Gaming

ℹ️
Menor latencia significa: - Respuesta más rápida de mouse/entrada - Ping más bajo en juegos multijugador - Menos jitter de tiempos de frame - Mejor rendimiento en gaming competitivo

Desactivar Dynamic Tick

Medium

Configura prioridad de interrupciones y desactiva dynamic tick para timing consistente

💡 Asegura procesamiento consistente de interrupciones y reduce variaciones de timing

Desactivar Dynamic Tick

DisableDynamicTick fuerza a Windows a usar timer fijo de 15.625ms en lugar de ajuste dinámico. Esto proporciona timing más consistente para gaming.
PowerShell / CMD
$path = "HKLM:\SYSTEM\CurrentControlSet\Control\KernelVelocity" New-Item -Path $path -Force | Out-Null New-ItemProperty -Path $path -Name "DisableDynamicTick" -PropertyType DWord -Value 1 -Force

Importante

⚠️
Requiere privilegios de administrador y reinicio de Windows. Ayuda a consistencia en frame timing.

Configurar DPC Watchdog

Medium

Ajusta el perfil del watchdog de DPC para menor latencia

💡 Previene problemas de timeout de DPC y mejora respuesta de interrupciones

Establecer DPC Watchdog Offset

DPC (Deferred Procedure Call) Watchdog monitorea el tiempo de procesamiento de interrupciones. Aumentar el offset previene timeouts del watchdog.
PowerShell / CMD
$path = "HKLM:\SYSTEM\CurrentControlSet\Control\Session Manager\kernel" New-ItemProperty -Path $path -Name "DpcWatchdogProfileOffset" -PropertyType DWord -Value 10000 -Force

Significado del Valor

ℹ️
10000 (0x2710) permite hasta 10 microsegundos para procesamiento de DPC antes de timeout.

Establecer Baja Resolución de Timer

Medium

Reduce la resolución de timer de Windows de 15.625ms a 1ms o 0.5ms

💡 Mejora dramáticamente la responsividad de entrada y consistencia de frames

Entendiendo Resolución de Timer

ℹ️
Resolución de timer por defecto de Windows: 15.625ms (64 Hz) Óptimo para gaming: 1ms (1000 Hz) Agresivo: 0.5ms (2000 Hz) Menor resolución de timer = más interrupciones frecuentes = menor latencia

Establecer Resolución de Timer a 0.5ms

Usa comandos bcdedit para establecer resolución de timer a 0.5ms, la optimización de gaming más agresiva.
PowerShell / CMD
bcdedit /set disabledynamictick yes bcdedit /set useplatformclock true

Importante

⚠️
Estos comandos bcdedit requieren privilegios de administrador y reinicio de Windows.

Herramientas de Resolución de Timer

Medium

Usa herramientas de terceros para ajustar resolución de timer en tiempo real

💡 Permite ajuste dinámico de timer sin reinicio del sistema

Herramientas Recomendadas

ℹ️
- TimerResolution de Lucas Hale: Herramienta GUI para ajuste de timer en tiempo real - HPET Utility: Acceso directo a hardware de timer Estas herramientas evitan el defecto de 15ms y funcionan inmediatamente sin reinicio.

Usando TimerResolution

ℹ️
Descarga TimerResolution, establece a 0.5ms o 1ms, y toma efecto inmediatamente. Recomendado para pruebas antes de cambios permanentes de bcdedit.

Desactivar HPET

Medium

Desactiva High Precision Event Timer que puede introducir latencia

💡 En la mayoría de sistemas modernos, HPET añade latencia en lugar de ayudar

Desactivar HPET vía Configuración de Arranque

Elimina la configuración useplatformclock para desactivar HPET (High Precision Event Timer) a nivel de firmware.
PowerShell / CMD
bcdedit /deletevalue useplatformclock

Alternativa: Desactivar vía Device Manager

Desactiva el dispositivo High Precision Event Timer en Device Manager como método alternativo.
PowerShell / CMD
Get-PnpDevice | Where-Object {$_.FriendlyName -like "*High Precision Event Timer*"} | Disable-PnpDevice -Confirm:$false

Advertencia de Compatibilidad

⚠️
En sistemas muy antiguos o notebooks, HPET puede ser necesario. Prueba estabilidad después de desactivar antes de hacer permanente.

Configurar Prioridad de Mensajes de Windows

Medium

Reduce latencia de cola de mensajes de Windows con Win32PrioritySeparation

💡 Mejora velocidad de procesamiento de mensajes de ventana para respuesta más rápida de entrada

Establecer Win32PrioritySeparation para Gaming

Win32PrioritySeparation controla la prioridad de procesos en primer plano vs segundo plano. Valor 38 (0x26) es óptimo para gaming.
PowerShell / CMD
New-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\PriorityControl" -Name "Win32PrioritySeparation" -PropertyType DWord -Value 38 -Force

Valores Comunes

ℹ️
26 (0x1A): Balanceado 38 (0x26): Gaming (prioridad de primer plano aumentada) - Recomendado 40 (0x28): Máxima prioridad de primer plano (agresivo)

Configurar Prioridad de IRQ

Medium

Establece alta prioridad para manejo de interrupciones de red y GPU

💡 Asegura que interrupciones de red y GPU sean manejadas rápidamente

Establecer Prioridades de IRQ

IRQ8 típicamente maneja timers del sistema, IRQ16 maneja dispositivos PCI-E como red y GPU. Establece alta prioridad para dispositivos de gaming.
PowerShell / CMD
$path = "HKLM:\SYSTEM\CurrentControlSet\Control\PriorityControl" New-ItemProperty -Path $path -Name "IRQ8Priority" -PropertyType DWord -Value 1 -Force New-ItemProperty -Path $path -Name "IRQ16Priority" -PropertyType DWord -Value 2 -Force

Valores de Prioridad

ℹ️
Valores más altos = mayor prioridad. Valor 1-2 es rango seguro para optimización de gaming.

Habilitar Modo MSI

Medium

Habilita Message Signaled Interrupts para dispositivos PCIe

💡 Reduce latencia usando interrupciones basadas en mensaje en lugar de basadas en pin

¿Qué es MSI?

ℹ️
Message Signaled Interrupts (MSI) permite a dispositivos señalar interrupciones vía entrega de mensaje en lugar de pines de interrupción dedicados. Esto reduce latencia y contención.

Habilitar MSI para Gaming

ℹ️
Usa MSI Utility o edición de registro para habilitar MSI en: - Adaptador de red - GPU - Controlador USB La mayoría de dispositivos de gaming se benefician del modo MSI.

Nota

ℹ️
El modo MSI está típicamente habilitado por defecto en hardware de gaming moderno. Verifica Device Manager > Properties > MSI Support tab.

Verificar Configuración de Latencia

Medium

Verifica que todas las optimizaciones de latencia fueron aplicadas

💡 Confirma que los cambios de configuración tuvieron efecto

Verificar Dynamic Tick Desactivado

Verifica que DisableDynamicTick esté establecido a 1.
PowerShell / CMD
Get-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\KernelVelocity" -Name "DisableDynamicTick"

Verificar DPC Watchdog

Verifica que el offset del perfil de DPC Watchdog esté establecido.
PowerShell / CMD
Get-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\Session Manager\kernel" -Name "DpcWatchdogProfileOffset"

Verificar Resolución de Timer

Verifica que la configuración de timer de bcdedit esté aplicada. Verifica en System Information para Timer Resolution.
PowerShell / CMD
bcdedit /enum | findstr /i timer

Optimización Completa de Latencia

Medium

Aplica todas las optimizaciones de latencia y timer de una vez

💡 Reducción integral de latencia en un script

Script Completo de Optimización

Este script aplica todas las optimizaciones recomendadas de latencia y timer.
PowerShell / CMD
# Desactivar Dynamic Tick $path = "HKLM:\SYSTEM\CurrentControlSet\Control\KernelVelocity" New-Item -Path $path -Force | Out-Null New-ItemProperty -Path $path -Name "DisableDynamicTick" -PropertyType DWord -Value 1 -Force # Configurar DPC Watchdog $path = "HKLM:\SYSTEM\CurrentControlSet\Control\Session Manager\kernel" New-ItemProperty -Path $path -Name "DpcWatchdogProfileOffset" -PropertyType DWord -Value 10000 -Force # Configurar Win32PrioritySeparation para Gaming New-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\PriorityControl" -Name "Win32PrioritySeparation" -PropertyType DWord -Value 38 -Force # Configurar Prioridades de IRQ $path = "HKLM:\SYSTEM\CurrentControlSet\Control\PriorityControl" New-ItemProperty -Path $path -Name "IRQ8Priority" -PropertyType DWord -Value 1 -Force New-ItemProperty -Path $path -Name "IRQ16Priority" -PropertyType DWord -Value 2 -Force # Establecer Resolución de Timer vía bcdedit bcdedit /set disabledynamictick yes bcdedit /set useplatformclock true Write-Host "Todas las optimizaciones de latencia han sido aplicadas. Por favor reinicia Windows."

Después de Ejecutar el Script

⚠️
Reinicia Windows para que todos los cambios tomen efecto apropiadamente.

Mejores Prácticas de Latencia y Timers

Medium

Directrices importantes para aplicar optimizaciones de latencia

💡 Previene problemas y asegura configuración óptima

Antes de Hacer Cambios

⚠️
1. Crea un punto de restauración del sistema 2. Ejecuta PowerShell como Administrador 3. Prueba en modo seguro primero si te preocupa la estabilidad 4. Ten CDs/descargas de drivers listos para GPU y red 5. Anota todas las configuraciones originales antes de cambios

Reinicio del Sistema Requerido

⚠️
Todos estos cambios requieren un reinicio completo del sistema para tomar efecto. Planifica en consecuencia.

Notas de Compatibilidad

ℹ️
- Funciona en Windows 7, 8, 10 y 11 - Algunos sistemas muy antiguos pueden necesitar HPET habilitado - Las máquinas virtuales pueden no soportar todos los cambios - Algunas configuraciones requieren soporte de hardware específico

Resultados de Pruebas

ℹ️
Mejoras esperadas: Latencia de entrada reducida (típico 5-10ms), menor consistencia de tiempo de frame, mejor estabilidad de ping. Los resultados varían según hardware y juego.

Herramientas de Accesibilidad

Tamaño actual: 100%