में अनावश्यक टुकड़ा नकल से बचना वहाँ इस तरह के मामलों के लिए व्यर्थ टुकड़ा नकल से बचने के लिए एक आम मुहावरा है। extend
को देने के लिए स्मृति में एक नया टुकड़ा बनाने के बजाय मैं कहना चाहता हूं कि "वर्तमान वस्तु की केवल इस सीमा का उपयोग करें"।अजगर
कुछ तरीकों टुकड़ा मानकों के साथ तुम बाहर में मदद मिलेगी, उदाहरण के count
के लिए:
>>> a = bytearray(1000000) # a million zero bytes
>>> a[0:900000].count(b'\x00') # expensive temporary slice
900000
>>> a.count(b'\x00', 0, 900000) # helpful start and end parameters
900000
लेकिन कई, मेरे पहले उदाहरण में extend
की तरह, यह सुविधा नहीं है।
मुझे एहसास है कि मैं जिन अनुप्रयोगों के बारे में बात कर रहा हूं, उनके लिए माइक्रो-ऑप्टिमाइज़ेशन होगा, इसलिए किसी से पूछने से पहले - हाँ, मैंने अपना आवेदन प्रोफाइल किया है, और यह मेरे मामले के बारे में चिंता करने योग्य है।
मेरे पास नीचे एक 'समाधान' है, लेकिन किसी भी बेहतर विचार का स्वागत है।
बफर बफर इंटरफेस का समर्थन करने वाली वस्तुओं के लिए एक अच्छा विकल्प है। आम तौर पर यह छोटे मामलों के लिए विशेष आवरण के लायक नहीं है (जब तक कि आपके अधिकांश उपयोग के मामले छोटे नहीं होते हैं) क्योंकि एक छोटी राशि से 50% अधिक अभी भी एक छोटी राशि –