Cómo aumentar la Memoria Virtual en Windows 11 y 10: Guía para mejorar el rendimiento


Introducción

En Windows 11, la memoria virtual (o archivo de paginación) actúa como un salvavidas para tu hardware. Básicamente, es una función que permite al sistema operativo utilizar una parte de tu unidad de almacenamiento (SSD o HDD) como si fuera memoria RAM. Cuando tu memoria física está saturada, Windows mueve los datos menos utilizados al «archivo de paginación» para liberar espacio para los procesos activos.

Aunque Windows gestiona esto automáticamente de forma eficiente, hay situaciones críticas donde la intervención manual es necesaria. Si trabajas con bases de datos pesadas, edición de vídeo, o te encuentras con errores específicos como «Unable to allocate array» en Python o aplicaciones de ingeniería, aumentar manualmente este valor puede evitar que el sistema se congele. En este post de soloelectronicos, te enseñamos cómo ajustar estos valores de forma segura tanto por la interfaz visual como por comandos.

Cómo aumentar la memoria virtual a través de la interfaz

En  Windows 11(se abre en una pestaña nueva), la memoria virtual (también conocida como «archivo de paginación») es una función que almacena temporalmente archivos de página menos frecuentes cargados en la memoria del sistema (RAM o memoria de acceso aleatorio) en el disco duro. La función permite que Windows use una memoria física más rápida para ejecutar aplicaciones y procesos. El resultado es  un mejor rendimiento mientras evita que el sistema se congele si se agota la memoria.

El sistema puede administrar el tamaño del archivo de paginación automáticamente. Sin embargo, puede ser necesario cambiar la configuración de memoria virtual predeterminada manualmente en algunas situaciones. Por ejemplo, cuando la computadora presenta problemas de rendimiento, una aplicación requiere una configuración de memoria específica para funcionar correctamente, o se topa con el mensaje «Su sistema tiene poca memoria virtual«.

Por otro lado el mensaje «Unable to allocate array with shape and data type» es un error que ocurre a veces operando con matrices en Windows y , la solución simplemente podria ser aumentar el tamaño del archivo de paginación , ya que también podria ser un problema de sobreasignación de memoria cuando se manejan matrices de datos muy grandes.

Cualquiera que sea el caso, Windows 11 incluye al menos dos formas diferentes de aumentar la capacidad de la memoria virtual para superar las limitaciones de la memoria del sistema mediante la aplicación Configuración y el símbolo del sistema.

En este post dedicado a Windows 11 ( aunque también puede extrapolarse a otras versiones anteriores) , lo guiaremos a través de los pasos para aumentar el tamaño de la memoria virtual para que su dispositivo sea un poco más rápido.

Advertencia:  aunque nada le impide cambiar el tamaño del archivo de paginación, solo debe usar estas instrucciones si tiene una buena razón y sabe lo que está haciendo.

Para modificar la configuración de la memoria virtual en Windows 11, siga estos pasos:

  1. Abra  Configuración .
  2. Haz clic en  Sistema .
  3. Haga clic en la  página Información  en la parte inferior.
  1. En la primera sección «Especificaciones del dispositivo», haga clic en la opción Configuración avanzada del sistema que nos llevara a una nueva ventana «Propiedades del sistema».
  1. Haga clic en la  pestaña  Rendimiento vuelva a la pestaña Opciones avanzadas  de nuevo.
  2. En la sección «Memoria virtual», haga clic en el  botón Cambiar  .
  1. Borre la  opción «Administrar automáticamente el tamaño de los archivos de paginación para todas las unidades»  .
  2. Seleccione la  opción Tamaño personalizado  .
  3. Especifique el tamaño inicial y máximo del archivo de paginación en megabytes. Consejo rápido:  el tamaño de la memoria virtual será diferente para todos. Sin embargo, por lo general, debe usar un número que sea una vez y media la memoria total disponible para el «Tamaño inicial» y tres veces la memoria disponible para el «Tamaño máximo».
  4. Haga clic en el  botón Establecer 
  1. Haga clic en el  botón Aceptar  .
  2. Haga clic en el  botón Aceptar  de nuevo.
  3. Reinicie su dispositivo.

Una vez que complete los pasos, el rendimiento general del sistema debería aumentar mientras navega por el escritorio y ejecuta aplicaciones.

Si cambia de opinión, puede deshacer los cambios con las mismas instrucciones, pero en el  paso 9 , marque la  opción «Administrar automáticamente el tamaño de paginación para todas las unidades»  y reinicie su ordenador.

Configuración avanzada mediante Símbolo del Sistema (CMD)

Para administradores de sistemas o usuarios avanzados, el comando WMIC permite realizar este cambio rápidamente:

  1. Ejecuta Símbolo del sistema como administrador.
  2. Desactiva la gestión automática: wmic computersystem where name="%computername%" set AutomaticManagedPagefile=false
  3. Configura el tamaño (ejemplo para 8GB inicial y 12GB máximo): wmic pagefileset where name="C:\\pagefile.sys" set InitialSize=8192,MaximumSize=12288
  4. Reinicia para aplicar los cambios: shutdown -r -t 00

¿Cuándo deberías tocar esta configuración?

Es importante entender que la memoria virtual es significativamente más lenta que la RAM física, incluso si utilizas un disco SSD NVMe. Por ello, solo recomendamos modificar estos valores si:

  • Aparece el mensaje «Su sistema tiene poca memoria virtual».
  • Sufres bloqueos al trabajar con matrices de datos masivas.
  • Una aplicación específica requiere un archivo de paginación fijo.
memorias

Conclusión

Ajustar la memoria virtual es una solución excelente para superar limitaciones temporales de hardware sin invertir dinero en nuevos módulos de RAM. Sin embargo, no es un sustituto definitivo de la memoria física. Si tras aumentar estos valores el sistema sigue sintiéndose pesado, la mejor ruta será siempre la ampliación de la RAM física de tu equipo.

Como regla de oro: nunca desactives el archivo de paginación, ya que Windows necesita este espacio para gestionar volcados de memoria y procesos en segundo plano, incluso si tienes 32GB o 64GB de RAM.

¿Has notado mejoría tras cambiar estos valores en tu equipo de trabajo? Cuéntanos tu experiencia.

Integración Arduino IoT Cloud Amazon Alexa


En este post vamos integrar Arduino con Alexa para lo cual vamos a utilizar Arduino IoT Cloud, es decir usaremos el Editor web Arduino , Arduino IoT Cloud asi como Alexa Skills para Arduino .

En cuanto al hardware se usaran los siguientes componentes:

  • Arduino MKR WiFi 1010 × 1
  • Escudo Arduino MKR ENV × 1
  • Protoboard (genérico) × 1
  • LED de alto brillo, blanco × 1
  • Cables de puente (genéricos) × 1
  • Cátodo común LED RGB × 1
  • Resistencia 220 ohmios

1: Arduino IoT Cloud y montaje inicial

El esquema que se va a usar es bastante simple, como se puede ver en la imagen de abajo, pues se basa en dos simples leds ( uno tricolor) con sus correspondientes resistencias limitadoras todo ello conectado a un arduino MKR

Desde la página principal de IoT Cloud , crearemos algo nuevo y le asignaremos un nombre significativo Luego seleccionaremos el tablero que vamos a usar. Si no puede ver su tablero, es posible que haya omitido agregar un nuevo dispositivo siguiendo el procedimiento que comienza después de hacer clic en el botón AGREGAR DISPOSITIVO , en la sección Dispositivos .

Una vez hecho esto, añadiremos tres propiedades a nuestra «Thing» (cosa) . Los dos primeros representarán las lámparas , el último la temperatura.

El tipo ColouredLight nos permite controlar una Luz RGB , permitiéndonos controlar su brillo y color. Configúrelo como ReadandWrite porque necesitaremos controlar su comportamiento usando Alexa.

El tipo DimmedLight es similar al anterior, pero solo nos permite controlar el brillo de una luz.

La última propiedad a agregar es la temperatura . Agreguemos este como ReadOnly, ya que solo queremos saber su valor, no establecerlo. Como tipo podemos usar el sensor de temperatura (Celsius), pero siéntase libre de configurarlo como Fº si le conviene más.

Así es como debería verse la vista del Panel de control de su cosa en este punto:

Al agregar propiedades, asegúrese de usar solo los tipos enumerados en la sección Hogar inteligente ; de lo contrario, no funcionarán con Alexa.

La sección Smart Home

Ahora vaya al Editor web haciendo clic en el botón Editar boceto en la vista de edición de su cosa .

2: Editor web Arduino

En el Editor web necesitamos agregar algún código al Sketch generado automáticamente para nosotros.

Debido a que queremos leer algunos datos ambientales (es decir, la temperatura, pero no dude en agregar luz, humedad y presión si lo desea), importaremos la biblioteca Arduino_MKRENV en la parte superior de nuestro Sketch.

#include <Arduino_MKRENV.h>

Luego definimos algunas constantes para los pines de la placa que se usarán para R, G, Bandwhitelight , de esta manera el código es más legible:

#define PIN_MEETING_ROOM 5
#define PIN_LOUNGE_AREA_R 2
#define PIN_LOUNGE_AREA_B 3
#define PIN_LOUNGE_AREA_G 4

Ahora, en la función de configuración , podemos inicializar el Arduino MKR ENV Shield con:

if (!ENV.begin()) {
   Serial.println("Failed to initialize MKR ENV shield!");
   while (1);
}

De esta forma si el escudo no está instalado se bloqueará la ejecución del Sketch .

No necesitamos especificar que pinMode debe ser OUTPUT (saldia ) porque lusaremos analogWrite() para establecer la intensidad de nuestro LED blanco o los colores individuales del RGB.

En la función de bucle vamos a leer la temperatura cada segundo:

temperature = ENV.readTemperature();
delay(1000);

Finalmente, es hora de implementar nuestras funciones de devolución de llamada: las que se ejecutarán cada vez que se extraiga un cambio en el valor de una propiedad de IoT Cloud.

Tenemos que implementar onMeetingRoomChangeonLoungeAreaChange:

void onMeetingRoomChange() {
 uint8_t brightness = map(meetingRoom.getBrightness(), 0, 100, 0, 255);
 if (meetingRoom.getSwitch()) {
   Serial.println(brightness);
   analogWrite(PIN_MEETING_ROOM, brightness);    
 }
 else{
   analogWrite(PIN_MEETING_ROOM, LOW);
 }
}

Con el código de arriba primero leemos el valor de brillo de la nube y lo asignamos a un valor utilizable, luego verificamos si el interruptor de la luz está encendido, si lo está podemos encender la luz, usando el brightnessr ojo antes. De lo contrario apagamos la luz

El principio de funcionamiento es el mismo para la otra devolución de llamada:

void onLoungeAreaChange() {
 uint8_t r, g, b;
 loungeArea.getValue().getRGB(r, g, b);
 if (loungeArea.getSwitch()) {
   Serial.println("R:"+String(r)+" G:"+String(g)+ " B:"+String(b));
   analogWrite(PIN_LOUNGE_AREA_R, r);
   analogWrite(PIN_LOUNGE_AREA_B, b);
   analogWrite(PIN_LOUNGE_AREA_G, g);
 }
 else{
    Serial.println("Lamp Off");
    analogWrite(PIN_LOUNGE_AREA_R, 0);
    analogWrite(PIN_LOUNGE_AREA_B, 0);
    analogWrite(PIN_LOUNGE_AREA_G, 0);
 }
}

La única diferencia notable es el hecho de que en lugar del brillo solo, tenemos tres componentes diferentes: son la representación del color RGB de la luz. Por supuesto, podemos definir colores personalizados por nombre en la aplicación Alexa, por lo que no tendremos que decir manualmente qué cantidades de rojo, verde o azul queremos configurar.

Este es el código al completo:

/* 
  Sketch generated by the Arduino IoT Cloud Thing "Office"
  https://create.arduino.cc/cloud/things/f2c77d46-5abb-41e2-a8bb-3990155f342c 

  Arduino IoT Cloud Properties description

  The following variables are automatically generated and updated when changes are made to the Thing properties

  CloudTemperature temperature;
  CloudDimmedLight meetingRoom;
  CloudColoredLight loungeArea;

  Properties which are marked as READ/WRITE in the Cloud Thing will also have functions
  which are called when their values are changed from the Dashboard.
  These functions are generated with the Thing and added at the end of this sketch.
*/

#include "thingProperties.h"
#include <Arduino_MKRENV.h>

#define PIN_MEETING_ROOM 5
#define PIN_LOUNGE_AREA_R 2
#define PIN_LOUNGE_AREA_B 3
#define PIN_LOUNGE_AREA_G 4

void setup() {
  // Initialize serial and wait for port to open:
  Serial.begin(9600);
  // This delay gives the chance to wait for a Serial Monitor without blocking if none is found
  delay(1500);
  
  if (!ENV.begin()) {
    Serial.println("Failed to initialize MKR ENV shield!");
    while (1);
  }

  // Defined in thingProperties.h
  initProperties();

  // Connect to Arduino IoT Cloud
  ArduinoCloud.begin(ArduinoIoTPreferredConnection);
  
  /*
     The following function allows you to obtain more information
     related to the state of network and IoT Cloud connection and errors
     the higher number the more granular information you’ll get.
     The default is 0 (only errors).
     Maximum is 4
 */
  setDebugMessageLevel(2);
  ArduinoCloud.printDebugInfo();
}

void loop() {
  ArduinoCloud.update();
  // Your code here 
  temperature = ENV.readTemperature();
  delay(1000);
}


void onMeetingRoomChange() {
  uint8_t brightness = map(meetingRoom.getBrightness(), 0, 100, 0, 255);
  if (meetingRoom.getSwitch()) {
    Serial.println(brightness);
    analogWrite(PIN_MEETING_ROOM, brightness);    
  }
  else{
    analogWrite(PIN_MEETING_ROOM, LOW);
  }
}


void onLoungeAreaChange() {
  uint8_t r, g, b;
  loungeArea.getValue().getRGB(r, g, b);
  if (loungeArea.getSwitch()) {
    Serial.println("R:"+String(r)+" G:"+String(g)+ " B:"+String(b));
    analogWrite(PIN_LOUNGE_AREA_R, r);
    analogWrite(PIN_LOUNGE_AREA_B, b);
    analogWrite(PIN_LOUNGE_AREA_G, g);
  }
  else{
     Serial.println("Lamp Off");
     analogWrite(PIN_LOUNGE_AREA_R, 0);
     analogWrite(PIN_LOUNGE_AREA_B, 0);
     analogWrite(PIN_LOUGE_AREA_G, 0);
  }
}

3: Configuración de habilidades de Amazon Alexa

Ahora necesitaremos la aplicación Amazon Alexa, que se puede descargar desde la App Store de Apple o la Google Play Store . Una vez instalado, inicie sesión con su cuenta existente o cree una nueva.

Repasemos los pasos necesarios para instalar Arduino Alexa Skill. Seguiremos la secuencia de imágenes a continuación para ver todos los pasos requeridos.

1/9: toca "Dispositivos"
Toque «Dispositivos»
2/9: Ahora habilitemos nuestras habilidades para el hogar inteligente
Ahora habilitemos nuestras habilidades para el hogar inteligente (smart Home Skills)

Tecleando «Arduino» y tocando «buscar» obtendremos una lista. ¡Ese es el que necesitamos!

Una vez seleccionado, tendremos que habilitarlo

Inicie sesión con nuestras credenciales de cuenta Arduino Create

Nuestra Alexa y Arduino IoT Cloud ahora pueden hablar entre sí

Es hora de descubrir nuestros dispositivos

Un poco de paciencia no hará daño, así que habrá que esperar hasta que Alexa reconozca los nuevos dispositivos que nos hemos montado.

4: Configuración de dispositivos Amazon Alexa

Después de esperar un poco, debería ver que se han encontrado algunos dispositivos.

Después de tocar en Elegir dispositivo, se le presentará la página de configuración que enumera todos los dispositivos disponibles (se nombrarán de acuerdo con el nombre de nuestras propiedades en Arduino IoT Cloud).

Vamos a elegir un dispositivo y toque Set Hasta dispositivo . Si lo desea, también puede agregarlo a un grupo (de esta manera puede controlar y organizar sus dispositivos más fácilmente), de lo contrario, omita esta parte.

Repita el proceso de configuración para cada dispositivo que desee controlar.

Finalmente, la vista del dispositivo debería verse así:

Finalmente podemos empezar a preguntar cosas como «Alexa, ¿cuál es la temperatura en la oficina?» o «Alexa, enciende la luz de la sala de reuniones» .

Más información en https://create.arduino.cc/projecthub/303628/arduino-iot-cloud-amazon-alexa-integration-4e6078