Làm cách nào để biết mức sử dụng bộ nhớ tổng thể của máy tính là từ Python, chạy trên Windows XP?Sử dụng bộ nhớ máy tính trong Windows bằng Python
Trả lời
Bạn sẽ muốn sử dụng mô-đun wmi. Một cái gì đó như thế này:
import wmi
comp = wmi.WMI()
for i in comp.Win32_ComputerSystem():
print i.TotalPhysicalMemory, "bytes of physical memory"
for os in comp.Win32_OperatingSystem():
print os.FreePhysicalMemory, "bytes of available memory"
Bạn có thể truy vấn bộ đếm hiệu suất trong WMI. Tôi đã làm một cái gì đó tương tự nhưng với không gian đĩa để thay thế.
Liên kết rất hữu ích là Python WMI Tutorial by Tim Golden.
Bạn cũng có thể chỉ cần gọi GlobalMemoryStatusEx() (hoặc bất kỳ kernel32 khác hoặc user32 xuất khẩu) trực tiếp từ python:
import ctypes
class MEMORYSTATUSEX(ctypes.Structure):
_fields_ = [
("dwLength", ctypes.c_ulong),
("dwMemoryLoad", ctypes.c_ulong),
("ullTotalPhys", ctypes.c_ulonglong),
("ullAvailPhys", ctypes.c_ulonglong),
("ullTotalPageFile", ctypes.c_ulonglong),
("ullAvailPageFile", ctypes.c_ulonglong),
("ullTotalVirtual", ctypes.c_ulonglong),
("ullAvailVirtual", ctypes.c_ulonglong),
("sullAvailExtendedVirtual", ctypes.c_ulonglong),
]
def __init__(self):
# have to initialize this to the size of MEMORYSTATUSEX
self.dwLength = ctypes.sizeof(self)
super(MEMORYSTATUSEX, self).__init__()
stat = MEMORYSTATUSEX()
ctypes.windll.kernel32.GlobalMemoryStatusEx(ctypes.byref(stat))
print("MemoryLoad: %d%%" % (stat.dwMemoryLoad))
Không nhất thiết hữu ích như WMI trong trường hợp này, nhưng chắc chắn một thủ thuật thú vị khi có trong túi sau của bạn.
Điều này thật tuyệt vời, bạn không biết mình có thể làm điều này trong Windows. – Anders
Đó là sự trở lại trong __init__? Tại sao bạn lại làm vậy? – Arafangion
Siêu cuộc gọi có thể được bỏ qua vì dwLength đã được khởi tạo trước và các _fields_ khác không cần khởi tạo. – phobie
- 1. Cách sử dụng bộ nhớ trong Windows trong C++
- 2. Làm cách nào để đọc bộ nhớ của một quá trình khác bằng Python trong Windows?
- 3. Sử dụng bộ nhớ Python: Đối tượng nào của tôi đang chiếm nhiều bộ nhớ nhất?
- 4. Rò rỉ bộ nhớ bằng cách sử dụng pandas dataframe
- 5. Delphi: sử dụng TClientDataset làm bộ nhớ trong bộ nhớ
- 6. Sử dụng bộ nhớ cao của Python với BeautifulSoup
- 7. Giải phóng bộ nhớ trong Python
- 8. Rò rỉ bộ nhớ bằng cách sử dụng socket.io
- 9. Thực hiện kiểm soát bộ nhớ cache bằng cách sử dụng .htaccess trên máy chủ Apache
- 10. Làm cách nào để theo dõi CPU, bộ nhớ và mức sử dụng đĩa của máy tính trong Java?
- 11. Danh sách Python sử dụng bộ nhớ bất thường
- 12. sử dụng bộ nhớ trong R
- 13. Python - Rò rỉ bộ nhớ
- 14. đa Python và bộ nhớ
- 15. Theo dõi * tối đa * sử dụng bộ nhớ bằng chức năng Python
- 16. lỗi bộ nhớ trong python
- 17. Giao diện với máy tính từ xa bằng cách sử dụng Python
- 18. Lịch sử sử dụng bộ nhớ Linux
- 19. Tôi làm cách nào để sử dụng bộ nhớ trong Python?
- 20. trang bộ nhớ đệm bằng cách sử dụng php
- 21. Mô phỏng bộ nhớ thấp bằng cách sử dụng C++
- 22. Ứng dụng Máy tính để bàn Python
- 23. Sử dụng bộ nhớ C#
- 24. Đọc bảng tính Excel trong bộ nhớ
- 25. Sử dụng bộ nhớ video OpenGL
- 26. Giao tiếp giữa hai máy tính bằng cách sử dụng ổ cắm python
- 27. scikit-learning Sử dụng bộ nhớ DBSCAN
- 28. Trình biên tập bộ nhớ dòng lệnh bằng Python?
- 29. Giới hạn bộ nhớ VM của Python
- 30. sử dụng Máy chủ Windows Script
Tôi xin lỗi, điều này nhận được bộ nhớ vật lý tổng thể (rõ ràng) - Tôi sẽ để mở vì đây là một bước đi đúng hướng cho đến khi tôi tìm thấy lệnh WMI để nhận bộ nhớ đã sử dụng/miễn phí. –
+1. Nó sẽ là tầm thường để thay đổi điều này để lấy dữ liệu chính xác. – Skurmedel
@NigelHeffernan Câu trả lời hiện có đã sử dụng Win32_OperatingSystem để truy cập FreePhysicalMemory. –