taruhan terbaik Anda untuk solusi lintas platform adalah menggunakan paket psutil (tersedia di PyPI).
import psutil
psutil.virtual_memory().total # total physical memory in Bytes
Dokumentasi untuk virtual_memory
ada di sini.
Menggunakan os.sysconf
di 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
Catatan:
SC_PAGE_SIZE
sering kali 4096.SC_PAGESIZE
danSC_PAGE_SIZE
sama.- Untuk info selengkapnya, lihat
man sysconf
. - Untuk MacOS , sesuai laporan pengguna, ini berfungsi dengan Python 3.7 tetapi tidak dengan Python 3.8.
Menggunakan /proc/meminfo
di 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
Ekspresi reguler bekerja dengan baik untuk hal semacam ini, dan mungkin membantu dengan perbedaan kecil di seluruh distribusi.
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])
Cara yang tepat untuk mendapatkan grup pengguna di linux menggunakan C
Bagaimana cara mempertahankan jeda baris saat menyimpan keluaran perintah ke variabel?