% prun का उपयोग करके आईपीथन में अपना कोड प्रोफाइलिंग, मैंने देखा है कि अधिकांश कार्य समय कचरा संग्रह (0.334 बनाम 0.428 कुल समय) में खर्च किया जाता है।कचरा संग्रह इतना धीमा क्यों है?
79254 function calls (77408 primitive calls) in 0.428 seconds
Ordered by: internal time
ncalls tottime percall cumtime percall filename:lineno(function)
5 0.334 0.067 0.334 0.067 {gc.collect}
15757 0.005 0.000 0.007 0.000 {isinstance}
1584 0.002 0.000 0.004 0.000 dtypes.py:68(is_dtype)
मैं अक्षम करने/समारोह कॉल करने से पहले और इसके मूल्य लौटने के बाद कचरा संग्रहण को सक्षम करने की कोशिश की है, लेकिन समय लगभग समान है।
import gc
gc.disable()
x = foo()
gc.disable()
क्या किसी को पता है कि यह इतनी बाधा क्यों है और इसे कैसे गति दें?
मेरे अजगर/पांडा संस्करणों नीचे सूचीबद्ध हैं:
Python 2.7.11 |Continuum Analytics, Inc.| (default, Dec 6 2015, 18:57:58)
Pandas 0.17.1
मैं अपने कोड एक बहुत बार बार कचरा पैदा करता है लगता है। –
मुझे लगता है कि उत्तर "नहीं" है, लेकिन क्या आप यहां कोई कोड साझा कर सकते हैं? अन्यथा शायद आप कुछ ऐसा लिख सकते हैं जो इस जीसी मुद्दे को प्रदर्शित करता है। : एस –
@ एंडीहेडन मैं अभी भी प्रोफाइलिंग कर रहा हूं। ऐसा लगता है कि बाधा एक ऐसा कार्य है जो बहुत सारे रिग्रेशन चलाता है। अगर मैं एक एमवीई एक साथ रख सकता हूं, तो मैं अपनी पोस्ट संपादित करूंगा। – Alexander