2009-01-06 4 views
5

से XP में प्रक्रिया का आकार मेरे पास एक पाइथन स्क्रिप्ट है जो Windows XP के अंतर्गत 2 जीबी प्रक्रिया सीमा तक पहुंच सकती है। 2 जीबी भौतिक मेमोरी वाली मशीन पर, जो मशीन को लॉक कर सकती है, भले ही पाइथन स्क्रिप्ट सामान्य प्राथमिकता से नीचे चल रही हो।पाइथन

क्या पाइथन में अपना स्वयं का प्रक्रिया आकार खोजने का कोई तरीका है?

धन्यवाद, गेरी

+0

640 केबी सभी के लिए पर्याप्त होना चाहिए: डी –

+0

भले ही आपके प्रश्न का उत्तर हो, हो सकता है कि आप अपने संसाधन उपयोग पर एक और नज़र डालें। 2 जी सिर्फ इतना आईएमओ है – Perpetualcoder

उत्तर

2

कोशिश:

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

https://github.com/giampaolo/psutil psutil का उपयोग करके:

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

बल्कि रनटाइम पर अपनी प्रक्रिया आकार को सीमित के बारे में चिंता की तुलना में, यह आंकड़ा करने के लिए बेहतर हो सकता है अगर डेटा के सभी टुकड़े जिन्हें आप वर्तमान में स्मृति में संग्रहीत कर रहे हैं, वास्तव में हर समय स्मृति में होना आवश्यक है।

आपके पास शायद कुछ डिस्क स्थान है, और बस कुछ अस्थायी फ़ाइलों को बनाकर (tempfile module देखें) वहां किसी भी डेटा को लिखने का पर्याप्त अवसर होना चाहिए जिसका उपयोग आप डिस्क की वर्तमान गणना के लिए नहीं कर रहे हैं। इसके बाद आप इसे बाद में पढ़ सकते हैं जब/यदि आपको इसकी आवश्यकता होती है। यह (सरलता से) कितने डेटाबेस काम करते हैं।

जबकि डिस्क को कम्प्यूटेशनल अर्थ में "धीमा" माना जाता है, यह अभी भी बहुत तेज़ है और यह बड़े डेटा सेट के साथ काम करते समय एक बेहद उपयोगी टूल है। और चूंकि आप पहले से ही "सामान्य के नीचे" प्रक्रिया प्राथमिकता सेट कर रहे हैं, ऐसा लगता है कि गति आपके लिए एक गंभीर समस्या नहीं होनी चाहिए, जबकि स्मृति स्पष्ट रूप से है।