2009-01-06 20 views
5

Tôi có một tập lệnh python có thể tiếp cận giới hạn quy trình 2 GB trong Windows XP. Trên máy tính có bộ nhớ vật lý 2 GB, có thể khóa khá nhiều máy, ngay cả khi tập lệnh Python đang chạy ở mức ưu tiên bình thường.Kích thước quy trình trong XP từ Python

Có cách nào trong Python để tìm ra quy trình của riêng tôi không?

Cảm ơn, Gerry

+0

640 kb là đủ cho tất cả mọi người: D –

+0

Ngay cả khi có thể có câu trả lời cho câu hỏi của bạn, bạn có thể muốn xem xét lại việc sử dụng tài nguyên của mình. 2G chỉ là quá nhiều IMO – Perpetualcoder

Trả lời

2

thử:

import win32process 
print win32process.GetProcessMemoryInfo(win32process.GetCurrentProcess()) 
1

Bằng cách sử dụng psutil https://github.com/giampaolo/psutil:

>>> import psutil, os 
>>> p = psutil.Process(os.getpid()) 
>>> p.memory_info() 
meminfo(rss=6971392, vms=47755264) 
>>> p.memory_percent() 
0.16821255914801228 
>>> 
0

Thay vì lo lắng về giới hạn kích thước quá trình của bạn trong thời gian chạy, nó có thể là tốt hơn để con số nếu tất cả các phần dữ liệu bạn đang lưu trữ trong bộ nhớ thực sự cần phải có trong bộ nhớ mọi lúc.

Bạn có thể có nhiều dung lượng đĩa và chỉ cần tạo một số tệp tạm thời (xem tempfile module) sẽ có nhiều cơ hội để ghi bất kỳ dữ liệu nào bạn không còn sử dụng cho phép tính hiện tại vào đĩa. Sau đó bạn có thể đọc lại sau này khi/nếu bạn cần lại. Đây là (đơn giản) có bao nhiêu cơ sở dữ liệu hoạt động.

Trong khi đĩa được coi là "chậm" theo nghĩa tính toán, nó vẫn còn rất nhanh và nó là một công cụ cực kỳ hữu ích khi làm việc với các tập dữ liệu lớn. Và kể từ khi bạn đã thiết lập ưu tiên quá trình để "Dưới bình thường" nó không có âm thanh như tốc độ nên là một vấn đề nghiêm trọng cho bạn anyway, trong khi bộ nhớ rõ ràng là.

Các vấn đề liên quan