En algunas ocasiones, puede darse la situación de que necesitemos realizar tareas intensivas que consumen recursos del procesador, y estas se ven limitadas por la potencia de este para ejecutarse mejor o más rápido. Afortunadamente, en Windows 10 hay una manera de asignar más recursos al procesador para las aplicaciones o juegos que queremos y así mejorar su rendimiento, y os explicamos cómo hacerlo.
Antes de nada, hay que tener en cuenta que el proceso que vamos a ejecutar no es que vaya a aumentar el rendimiento bruto del procesador, sino que lo que vamos a hacer es asignarle más recursos pero evidentemente quitándoselos a otras cosas. En otras palabras, estaremos mejorando el rendimiento de la aplicación o juego que queramos, pero estaremos reduciendo el rendimiento del resto de aplicaciones que estén funcionando en segundo plano.
Por lo tanto, aplica esta técnica con precaución y con mesura, ya que darle una prioridad en tiempo real a un juego o aplicación podría provocar que incluso otras se quedaran bloqueadas, al no asignarle el procesador nada o casi nada de su tiempo para las operaciones que necesite realizar. Aunque si controlas muy bien cuál es esa carga de trabajo, siempre ganarás en rendimiento que es, al fin y al cabo, lo que estamos buscando.
Cómo mejorar el rendimiento asignando más recursos del procesador
Hoy en día prácticamente la totalidad de los programas y juegos se benefician del hecho de que los procesadores modernos tienen varios núcleos, es decir, son varios de ellos trabajando en conjunto para ejecutar los programas de la forma más rápida posible. No obstante toda aplicación la podemos dividir en cuanto a su naturaleza, según la manera en la que aprovecha los recursos del procesador.
- La parte que se ejecuta en serie y, por tanto, solo puede resolverla un procesador.
- La parte que se ejecuta en paralelo, lo que permite la división del trabajo, haciendo que un mayor número de núcleos solucionen el problema.
Un tipo de aplicación que se beneficia enormemente de una buena asignación de recursos del procesador son los juegos. Ya que estos ejecutan varios procesos simultáneos al mismo tiempo. En cada fotograma de un juego no solo están los gráficos que genera la tarjeta gráfica, sino que el procesador central se encarga de varias tareas como por ejemplo:
- El cálculo de las físicas,
- La inteligencia artificial de los diferentes enemigos.
- La creación de la lista de pantalla para la tarjeta gráfica.
- La detección de colisiones.
Incluso si no salimos de dentro del mundo de los videojuegos, a día de hoy existen muy pocas aplicaciones que se haya optimizado para funciona con un solo núcleo, solo hay que ir a la ventaja de procesos de Windows para ver la enorme cantidad que está ejecutando nuestra CPU. Por lo que nunca falta procesador. Eso sí, si crees que una aplicación no va la suficientemente rápida o consume demasiados recursos. Siempre puedes asignarle recursos del procesador manualmente.
Los recursos del procesador los asigna el sistema operativo
A día de hoy los sistemas operativos son del tipo multitarea preemptiva. Entender este concepto es importante por el hecho que en un entorno con varias aplicaciones al mismo tiempo el que se encarga de comunicarse con el hardware no son cada una de las aplicaciones por separado, ya que esto daría una cantidad de conflictos enormes que haría que el sistema no funcionase. Durante años la multitarea en PC era cooperativa, lo que es una versión falseada de la misma y son en realidad sistemas operativos con la capacidad de ejecutar una sola aplicación al mismo tiempo, pero con la capacidad de parar su ejecución y cederla a un tercero.
Cuando estos sistemas operativos fallaban por completo no respondían a las peticiones de llamada del sistema operativo, el cual se veía incapaz de tomar el control y acababa enviando una señal de error general. La cual se traducía en la infame pantalla azul de la muerte en Windows, el clásico mensaje de la bomba en los Macintosh o el Guru Meditation en los Amiga. Así que para evitar situaciones así se han inventado algunas herramientas capaces de prevenir esos escenarios.
A día de hoy para evitar estos problemas, los recursos del procesador no se asignan al 100% y debido a la naturaleza multihilo el sistema operativo se reserva uno de ellos para gestionar el resto de aplicaciones y si es necesario cerrar una aplicación que no está funcionando cómo es debido. Nos podemos encontrar que un juego requiera un elevado consumo de recursos del procesador. Pero en el sistema operativo, este no le asignará el 100% de recursos al juego porque tiene otras aplicaciones en segundo plano necesarias para el funcionamiento del sistema, la cuales si se parasen podría significar el colapso de todo el sistema.
Asignar más prioridad
Lo que podemos hacer para mejorar el rendimiento es, para empezar, asignarle más prioridad al proceso que ejecuta dicho juego. Para ello, debemos abrir el administrador de tareas (podemos hacerlo con clic derecho en la barra de inicio y seleccionando administrador de tareas, pulsando sobre el botón de inicio y escribiendo «administrador de tareas» o simplemente pulsando CTRL + SHIFT + ESC).
Con el administrador de tareas abierto, debemos ir a la pestaña «Detalles» y localizar el proceso del programa o juego al que queremos mejorar el rendimiento. Una vez localizado, pulsamos con el botón derecho del ratón sobre él, y en el menú «Establecer prioridad» tenemos las opciones para asignarle más prioridad.
Aquí podremos seleccionar prioridad «Por encima de lo normal» o «Alta«. La prioridad «Tiempo real» normalmente no es aconsejable, porque con esta Windows dejará de lado cualquier otra aplicación o programa que tengamos en segundo plano y podría llegar incluso a bloquearse con tal de asignar el máximo de recursos del sistema a la aplicación seleccionada. Así pues, en este punto, proceder con precaución.
En este caso «Tiempo Real» hace referencia a las aplicaciones cuyas interrupciones tienen preferencia sobre cualquier otro proceso a la hora de solucionarse. Ese tipo de aplicaciones se utilizan en ciertos entornos concretos diferentes al doméstico y su selección puede llevar al traste la ejecución en todo el sistema. Así que mucho cuidado con lo que tocáis y cómo lo dejéis configurado, no sea que se provoque un problema donde antes no lo había. Y peor aun sería si, una vez hechos los cambios, no sois muy conscientes de los parámetros que habéis modificado.
Establecer afinidad limitando el número de núcleos
Esta otra opción es más efectiva y a la vez menos peligrosa que la anterior, porque aquí lo que haremos será obligar a una aplicación a que se ejecute en ciertos núcleos del procesador y no en otros. Se accede de igual manera que en la opción anterior, pero en lugar de seleccionar «Establecer prioridad», pulsaremos sobre «Establecer afinidad» para que Windows se dé por enterado de lo que queremos hacer con esa aplicación en concreto.
Por defecto, Windows usará todos los núcleos del procesador para todos los procesos que haya abiertos en el sistema, así que aquí no se trata de hacer que el juego o aplicación se ejecute en menos núcleos, sino de seleccionar cualquier otra aplicación que consuma recursos del sistema y asignarle solo uno o dos núcleos, desmarcando el resto. En algunos juegos antiguos sí puede servirnos, puesto que se ha demostrado que algunos títulos funcionan mejor con cuatro núcleos que con más, así que aquí podríamos desactivar virtualmente núcleos para ese juego en concreto.
En algunos casos es posible que el propio administrador de tareas no nos permita cambiar los núcleos asignados a una aplicación, esto suele suceder si tenemos un programa que esta bloqueándolo, como puede ser en algunos juegos el sistema anti trampas que incorpore. Esto puede resultar un problema si es extremadamente necesario que cambiemos la afinidad del procesador, ya que si que es cierto que existen títulos en los que puede ser realmente necesario establecer una serie de núcleos para mejorar el rendimiento del juego.
Establecer la afinidad puede ser una buena práctica en procesadores Intel
Uno de los grandes problemas con los que nos podemos encontrar actualmente en algunos juegos es la diferencia que existe actualmente entre Intel y AMD, ofreciendo un mejor rendimiento en general los procesadores AMD de última generación por no utilizar núcleos de eficiencia, a diferencia de Intel. En aplicaciones que requieren una mayor potencia por parte del procesador como son los juegos, ya que si en ciertos momentos se asigna una parte del proceso a uno de estos núcleos denominados como E-Cores, es posible que experimentemos una bajada de rendimiento.
Esto implica que en muchos casos es prácticamente necesario establecer la afinidad para evitar que nos puedan dar este tipo de problemas, aunque para ello también podemos, directamente, desactivar el uso de estos núcleos de eficiencia desde la placa base. Pero si no queremos complicarnos, siempre podemos utilizar, como bien hemos visto, el administrador de tareas o cualquier aplicación que nos permita modificar la asignación de los núcleos del procesador para poder hacer este tipo de modificaciones.
¿Y si quiero que los cambios se guarden?
Hemos visto cómo se pueden modificar tanto la afinidad cómo la prioridad de un procesador, pero es posible que estemos pensando si hay alguna manera de poder automatizar este proceso, ya que no se guarda una vez reiniciamos el PC. Hay formas bastante sencillas y otras que pueden resultar más complicadas, pero como tal la forma más fácil que hay de hacer esto está en utilizar una aplicación que se ejecute cuando iniciamos el ordenador y que tenga los permisos necesarios para realizar estos cambios de forma automática, garantizando que cuando iniciemos el programa lo haga con estos parámetros.
Para este caso podemos utilizar por ejemplo Process Lasso, una aplicación que cuenta con una versión gratuita que nos permite modificar y guardar los parámetros que queramos para que se apliquen una vez iniciemos el programa en cuestión, facilitando mucho las cosas. Además cuenta con una serie de ventajas adicionales que nos permitirán modificar el funcionamiento del procesador dependiendo del tipo de aplicación que queramos usar, permitiéndonos incluso desactivar algunas tecnologías que pueden ser molestas en ciertas ocasiones como el HyperThreading.
Si por otra parte no queremos descargar ningún programa, también hay una forma de hacerlo mediante un script personalizado, pero debemos tener en cuenta que tendríamos que iniciar siempre el programa que queramos desde este script para que se apliquen los cambios relacionados con la propia afinidad:
- Creamos un archivo de texto
- Escribimos el comando [cd /d «Ubicación del archivo»] (el parámetro /d sirve para cambiar de directorio al de la ubicación del archivo)
- Ejemplo: cd /d «C:Program Files (x86)SteamsteamappscommonBlack Desert Online»
- Añadimos otra línea adicional en la que escribiremos el comando Start /affinity «Máscara de afinidad» [Ejecutable]
- Ejemplo: Start /affinity 555 BlackDesertLauncher.exe
- Guardamos el archivo como un ejecutable añadiendo .bat a la extensión final del mismo
- Ejemplo: BlackDesert.bat
Una vez hecho esto ya podremos ejecutar el programa que queramos desde el script personalizado que hemos creado, pero debemos tener en cuenta que el parámetro que hemos mencionado de «Máscara de afinidad» varía dependiendo de cada procesador y de cómo queramos configurar dicho programa.
¿Por qué es importante asignar los recursos al procesador?
En otras palabras, imaginad que estamos jugando a un juego, pero al mismo tiempo tenemos abierto Chrome, Photoshop y otras aplicaciones que no queremos cerrar. Lo que tendríamos que hacer es establecer la afinidad en esas otras aplicaciones para que se ejecutaran solo en uno o dos núcleos, y así Windows tendría más recursos del sistema para asignarle al juego de manera dinámica. Por cierto, lo ideal si hacemos esto es asignarle núcleos que estén en el final, ya que Windows por defecto asignará siempre más recursos de los núcleos 0 y 1 del procesador, lo que no es algo que nos venga especialmente bien para nuestro objetivo de hacer funcionar mejor el videojuego que tenemos en marcha.
No esperéis que esta técnica mejore de manera drástica el rendimiento, pero si estáis en la tesitura de que un juego os pone el procesador al 100% de consumo y os va lento, puede ayudaros a ganar algunos enteros de rendimiento que al final sí que se notan. Y arañando, arañando esos pequeños extras, al final podemos subir la fluidez y calidad de lo que estamos jugando en pantalla.
¿Dónde la recomendamos aplicar? Pues en todo aquello que se mueve en segundo plano, que teóricamente no debería consumir recursos de uno o dos núcleos, pero sí que lo hacen cuando tienen una CPU de varios núcleos. En el caso de que tengáis una CPU con un sistema de núcleos híbrido como Lakefield o Alder Lake, como bien hemos explicado antes, entonces esto es ideal para asignar ciertas aplicaciones siempre en funcionamiento a núcleos menos potentes.
Por otro lado, si estáis en modo en el que un núcleo está a más velocidad que otros podéis aprovechar para asignar los programas que requieran menos recursos a los núcleos más lentos y hacer lo contrario en la dirección de los que sabéis que son capaces de soportar una mayor carga.