الحصول على مجموع / RAM مجانا من داخل بيثون

StackOverflow https://stackoverflow.com/questions/1204378

  •  05-07-2019
  •  | 
  •  

سؤال

ومن داخل تطبيق بيثون، كيف يمكنني الحصول على المبلغ الإجمالي للRAM للنظام، وكم من ذلك فهو حر في الوقت الراهن، بطريقة عبر منصة؟

ومن الناحية المثالية، فإن المبلغ من ذاكرة الوصول العشوائي الحرة ينبغي أن تنظر الذاكرة الفعلية الوحيدة التي يمكن بالفعل المخصصة لعملية بيثون.

هل كانت مفيدة؟

المحلول

هل حاولت SIGAR - نظام المعلومات المجمع ومراسل ؟ بعد تثبيت

import os, sigar

sg = sigar.open()
mem = sg.mem()
sg.close() 
print mem.total() / 1024, mem.free() / 1024

ويساعد هذا الأمل

نصائح أخرى

psutil سيكون خيارا جيدا آخر. كما أنها تحتاج إلى مكتبة تثبيت ولكن.

>>> import psutil
>>> psutil.virtual_memory()
vmem(total=8374149120L, available=2081050624L, percent=75.1,
     used=8074080256L, free=300068864L, active=3294920704,
     inactive=1361616896, buffers=529895424L, cached=1251086336)

وبالنسبة للجزء بالذاكرة، هناك وظيفة في المكتبة WX:

wx.GetFreeMemory()

ومما يؤسف له، وهذا يعمل فقط على ويندوز. لينكس وماك الموانئ إما العودة "-1" أو رفع NotImplementedError.

وأنت لا تستطيع أن تفعل هذا مع مجرد مكتبة بايثون القياسية، على الرغم من أن قد يكون هناك بعض حزمة طرف ثالث أن يفعل ذلك. وباستثناء ذلك، يمكنك استخدام حزمة نظام التشغيل لتحديد نظام التشغيل الذي كنت على واستخدام هذه المعلومات للحصول على المعلومات التي تريدها لهذا النظام (وتغليف ذلك في وظيفة عبر منصة واحدة).

في النوافذ يمكنني استخدام هذا الأسلوب. انها hacky كيندا لكنه يعمل باستخدام مكتبة نظام التشغيل القياسية:

import os
process = os.popen('wmic memorychip get capacity')
result = process.read()
process.close()
totalMem = 0
for m in result.split("  \r\n")[1:-1]:
    totalMem += int(m)
print totalMem / (1024**3)
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top