Cómo administrar la memoria virtual en Windows 11


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 hablaremos de 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.

CÓMO AUMENTAR LA MEMORIA VIRTUAL A TRAVÉS DE LA CONFIGURACIÓN

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 la computadora.

CÓMO AUMENTAR LA MEMORIA VIRTUAL A TRAVÉS DEL SÍMBOLO DEL SISTEMA

Para cambiar el tamaño del archivo de paginación con comandos en Windows 11, siga estos pasos:

  1. Abre  Inicio .
  2. Busque  Símbolo del sistema , haga clic con el botón derecho en el resultado superior y seleccione la   opción Ejecutar como administrador .
  3. Escriba el siguiente comando para comprender el archivo de paginación actual y presione  Entrar :  wmic pagefile list /format:list 
  1. Escriba el siguiente comando para cambiar del sistema administrado a la memoria virtual personalizada en Windows 11 y presione  Entrar :  wmic computersystem where name=»%computername%» set AutomaticManagedPagefile=false
  1. Escriba el siguiente comando para configurar el tamaño inicial y máximo de la memoria virtual y presione  Entrar :  wmic pagefileset where name=»C:\\pagefile.sys» set InitialSize=YOUR-INIT-SIZE,MaximumSize=SU-MAX-SIZE 

    Este ejemplo establece el archivo de paginación a «9216» y «12288» megabytes para el tamaño inicial y máximo:  wmic pagefileset where name=»C:\\pagefile.sys» set InitialSize= 9216 ,MaximumSize= 12288
  1. Escriba el siguiente comando para reiniciar el dispositivo y presione  Entrar :  shutdown -r -t 00

Después de completar los pasos, la computadora debería comenzar a mostrar un aumento en el rendimiento.

Cuando ya no necesite esta configuración, puede ejecutar el  sistema informático wmic donde name=»%computername%» establece  el comando AutomaticManagedPagefile=true para revertir los cambios y reiniciar la computadora.

Aunque hay algunas recomendaciones para configurar el virtual manualmente, siempre debes tomarte el tiempo de probar las configuraciones y modificar los valores si el sistema comienza a tener problemas de estabilidad.

Si cree que el dispositivo no necesita memoria virtual solo porque tiene una gran cantidad de memoria física, no debe desactivar la función. La razón es que el sistema necesita el archivo de paginación. De lo contrario, es posible que experimente problemas para ejecutar aplicaciones y utilizar muchas funciones de Windows 11.

Windows 8

  1. En el teclado, presione la tecla de Windows + X y luego haga clic en Sistema en el menú emergente
  2. Toque o haga clic en Configuración avanzada del sistema. Es posible que se le solicite una contraseña de administrador o que confirme su elección
  3. En la pestaña Avanzado, en Rendimiento, toque o haga clic en Configuración.
  4. Toque o haga clic en la pestaña Avanzado y luego, en Memoria virtual, toque o haga clic en Cambiar
  5. Desactive la casilla de verificación Administrar automáticamente el tamaño del archivo de paginación para todas las unidades.
  6. En Unidad [Etiqueta de volumen], toque o haga clic en la unidad que contiene el archivo de paginación que desea cambiar
  7. Toque o haga clic en Tamaño personalizado, ingrese un nuevo tamaño en megabytes en el cuadro Tamaño inicial (MB) o Tamaño máximo (MB), toque o haga clic en Establecer y luego toque o haga clic en Aceptar
  8. Reinicie su sistema

Windows 10

  1. Presione la tecla de Windows
  2. Escriba SystemPropertiesAdvanced
  3. Haga clic en Ejecutar como administrador
  4. En Rendimiento, haga clic en Configuración
  5. Seleccione la pestaña Avanzado
  6. Seleccione Cambiar…
  7. Desmarque Administrar automáticamente el tamaño del archivo de paginación para todas las unidades
  8. Luego seleccione Tamaño personalizado y complete el tamaño apropiado
  9. Presione Establecer, luego presione Aceptar y luego salga del cuadro de diálogo Memoria virtual, Opciones de rendimiento y Propiedades del sistema.
  10. Reinicie su sistema

Nota: no tenía suficiente memoria en mi sistema para los ~282 GB de este ejemplo, pero en mi caso particular funcionó.

NOTAS

Algunas cosas a tener en cuenta  :

  • Existe una fórmula para calcular el tamaño correcto del archivo de paginación. El tamaño inicial es uno y medio (1,5) x la cantidad de memoria total del sistema. El tamaño máximo es tres (3) x el tamaño inicial. Entonces, digamos que tiene 4 GB (1 GB = 1024 MB x 4 = 4096 MB) de memoria. El tamaño inicial sería de 1,5 x 4.096 = 6.144 MB y el tamaño máximo sería de 3 x 6.144 = 18.432 MB.
  • Sin embargo, esto no tiene en cuenta otros factores importantes y configuraciones del sistema que pueden ser exclusivos de su ordenador. Nuevamente, deje que Windows elija qué usar en lugar de confiar en alguna fórmula arbitraria que funcionó en una computadora diferente.
  • Aumentar el tamaño del archivo de página puede ayudar a prevenir inestabilidades y fallos en Windows. Sin embargo, los tiempos de lectura/escritura de un disco duro son mucho más lentos de lo que serían si los datos estuvieran en la memoria de su computadora. Tener un archivo de página más grande agregará trabajo adicional para su disco duro, lo que hará que todo lo demás funcione más lentamente. El tamaño del archivo de página solo debe aumentarse cuando se encuentran errores de falta de memoria, y solo como una solución temporal. Una mejor solución es agregar más memoria a la computadora.

https://www.windowscentral.com/software-apps/windows-11/how-to-manage-virtual-memory-on-windows-11

Anuncio publicitario

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