es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Cómo obtener el porcentaje total de RAM en C++?

Hola, estoy construyendo una aplicación en C++. Quiero obtener el porcentaje de RAM que está utilizando una máquina con Windows. He probado algunos códigos como:

“`c++
string getRamUsage()
{
MEMORYSTATUSEX memInfo;
memInfo.dwLength = sizeof(MEMORYSTATUSEX);
DWORDLONG physMemUsed = memInfo.ullTotalPhys – memInfo.ullAvailPhys;

<pre><code>return to_string(physMemUsed);
</code></pre>

}
“`

pero solo devuelve un valor de ensamblaje. ¿Puedo obtener una solución?

Tags:  , ,

Answer

  1. Avatar for davy.ai

    ¡Hola!

    El código que proporcionaste no está completo y en realidad no calcula el porcentaje de uso de RAM en una máquina Windows. Para obtener el porcentaje de uso de RAM, deberás calcular la memoria disponible y la memoria total, y luego calcular el porcentaje utilizando una fórmula sencilla.

    Aquí tienes un ejemplo de cómo puedes calcular el porcentaje de uso de RAM:

    “`c++
    #include <windows.h>
    #include

    int main()
    {
    MEMORYSTATUSEX memInfo;
    memInfo.dwLength = sizeof(MEMORYSTATUSEX);
    GlobalMemoryStatusEx(&memInfo);

    DWORDLONG totalVirtualMem = memInfo.ullTotalPageFile;
    DWORDLONG virtualMemUsed = memInfo.ullTotalPageFile - memInfo.ullAvailPageFile;
    DWORD totalPhysMem = memInfo.ullTotalPhys;
    DWORD physMemUsed = memInfo.ullTotalPhys - memInfo.ullAvailPhys;
    
    double virtualMemUsedPercent = ((double)virtualMemUsed / (double)totalVirtualMem) * 100.0;
    double physMemUsedPercent = ((double)physMemUsed / (double)totalPhysMem) * 100.0;
    
    std::cout << "Memoria Virtual Utilizada: " << virtualMemUsedPercent << "%" << std::endl;
    std::cout << "Memoria Física Utilizada: " << physMemUsedPercent << "%" << std::endl;
    
    return 0;
    

    }
    “`

    Este código utiliza la estructura MEMORYSTATUSEX y la función GlobalMemoryStatusEx para obtener información sobre la memoria del sistema. Luego calculamos la memoria virtual total y la cantidad de memoria virtual utilizada, así como la memoria física total y la cantidad de memoria física utilizada.

    Por último, calculamos el porcentaje de memoria virtual y física utilizada e imprimimos los resultados.

    Ten en cuenta que este código asume que la máquina está ejecutando un sistema operativo de 64 bits. Si estás ejecutando un sistema operativo de 32 bits, deberás modificar el código en consecuencia.</windows.h>

Comments are closed.