GNU/Linux >> Znalost Linux >  >> Linux

Získejte celkovou fyzickou paměť v Pythonu

nejlepším řešením pro řešení napříč platformami je použití balíčku psutil (dostupný na PyPI).

import psutil
    
psutil.virtual_memory().total  # total physical memory in Bytes

Dokumentace pro virtual_memory je tady.


Pomocí os.sysconf v systému Linux:

import os
mem_bytes = os.sysconf('SC_PAGE_SIZE') * os.sysconf('SC_PHYS_PAGES')  # e.g. 4015976448
mem_gib = mem_bytes/(1024.**3)  # e.g. 3.74

Poznámka:

  • SC_PAGE_SIZE je často 4096.
  • SC_PAGESIZE a SC_PAGE_SIZE jsou si rovni.
  • Další informace naleznete v části man sysconf .
  • Pro MacOS , podle zpráv uživatelů to funguje s Pythonem 3.7, ale ne s Pythonem 3.8.

Pomocí /proc/meminfo v systému Linux:

meminfo = dict((i.split()[0].rstrip(':'),int(i.split()[1])) for i in open('/proc/meminfo').readlines())
mem_kib = meminfo['MemTotal']  # e.g. 3921852

Regulární výrazy pro tento druh věcí dobře fungují a mohou pomoci s malými rozdíly mezi distribucemi.

import re
with open('/proc/meminfo') as f:
    meminfo = f.read()
matched = re.search(r'^MemTotal:\s+(\d+)', meminfo)
if matched: 
    mem_total_kB = int(matched.groups()[0])

Linux
  1. Jak získat šířku okna konzoly Linux v Pythonu

  2. Jak získat konkrétní adresu paměti pomocí C

  3. Získejte čas na vytváření souborů s Pythonem na linuxu

  1. Jak získat celkové využití CPU v Linuxu pomocí C++

  2. Získejte aktuální název okna pomocí Pythonu a Xorg

  3. Jak získat velikost tar.gz v (MB) souboru v pythonu

  1. Jak získat PYTHONPATH v shellu?

  2. Program Python zabírá RAM

  3. Jak získat fyzickou velikost souboru v Linuxu?