- Python के लिए एक उच्च-प्रदर्शन CPU, GPU और मेमोरी प्रोफाइलर, जो कई ऐसे काम करता है जो दूसरे Python प्रोफाइलर नहीं करते या नहीं कर सकते
- यह कहीं अधिक तेज़ी से चलता है और साथ ही कहीं अधिक विस्तृत जानकारी देता है, तथा AI-आधारित optimization सुझावों को एकीकृत करने वाला पहला प्रोफाइलर है
- CLI और web-आधारित GUI उपलब्ध
- तेज़ और सटीक
- तेज़: instrumentation या Python की tracing सुविधाओं पर निर्भर होने के बजाय sampling का उपयोग करता है। overhead आम तौर पर 10~20% से अधिक नहीं होता और अक्सर इससे भी कम रहता है
- सटीक: accuracy tests के परिणामों से पता चला कि Scalene सबसे सटीक प्रोफाइलरों में से एक है और elapsed time को सटीक रूप से मापता है
- line-level और function-by-function profiling करता है, जिससे प्रोग्राम में execution time के लिए ज़िम्मेदार functions और खास code lines की पहचान होती है
- CPU profiling
- Python code और native code (libraries सहित) में लगे समय को अलग-अलग मापता है, ताकि डेवलपर उस code पर ध्यान दे सकें जिसे वे वास्तव में optimize कर सकते हैं
- CPU time या memory allocation का बड़ा हिस्सा लेने वाले hotspots को लाल रंग में हाइलाइट करता है
- system time को अलग से विभाजित करके दिखाता है, जिससे I/O bottlenecks को आसानी से खोजा जा सकता है
- GPU profiling
- केवल NVIDIA-आधारित systems पर GPU time रिपोर्ट करता है
- मेमोरी profiling
- memory usage profiling करता है और एक विशेष memory allocator के जरिए उन खास code lines की पहचान करता है जो memory growth का कारण बनती हैं
- Python code और native code के memory consumption ratio को अलग-अलग दिखाता है
- line-by-line memory profile बनाता है
- उन lines की पहचान करता है जहाँ memory leaks होने की संभावना है
- copy volume profiling के जरिए Python/library सीमा के पार होने वाली अनचाही copies (जैसे
numpy array का गलती से Python array में बदल जाना) को आसानी से पकड़ा जा सकता है
- अन्य सुविधाएँ
--reduced-profile विकल्प के जरिए ऐसा reduced profile बनाया जा सकता है जो केवल उन lines की रिपोर्ट करता है जो CPU का 1% से अधिक उपयोग करती हैं या कम-से-कम 100 allocations करती हैं
@profile decorator को support करता है, जिससे केवल specific functions की profiling की जा सकती है
- background में चल रहे programs (
& के जरिए चलाए गए) की profiling को pause और resume किया जा सकता है
2 टिप्पणियां
Nsight की तुलना में यह हल्का है और उपयोगी भी लग रहा है; इसे इस्तेमाल करके मैं अपनी समीक्षा ज़रूर छोड़ूँगा! परिचय के लिए धन्यवाद।
अगर आप बता दें तो मैं आभारी रहूंगा। कभी-कभी ऐसी खबरें पोस्ट करते समय मुझे जिज्ञासा होती है कि कितने लोग इन्हें देख रहे हैं। हा हा