मैं pyglet के साथ खेल रहा हूं। यह बहुत अच्छा है। हालांकि, अगर मैं अपने कोड है, जो एक निष्पादन योग्य फ़ाइल में है चलाने (यह game.py फोन)पायथन अनुकूलन का प्रोग्रामेटिक नियंत्रण?
./game.py
करके सामान्य
#!/usr/bin/env python
लगी होती तो यह थोड़ा भद्दा है। लेकिन अगर मैं यह
python -O ./game.py
या
PYTHONOPTIMIZE=1 ./game.py
तो इसकी सुपर चिकनी के साथ चलाते हैं।
मुझे बहुत परवाह नहीं है कि यह ऑप्टिमाइज़ेशन के बिना धीमा क्यों चलता है; पायगलेट के दस्तावेज में उल्लेख किया गया है कि अनुकूलन कई आवेषणों को अक्षम करता है और ओपनजीएल की त्रुटि जांच भी अक्षम करता है, और मुझे इसे छोड़ने में खुशी होती है।
मेरा प्रश्न है: लोग पाइथन कोड वितरित करने के तरीके को सुनिश्चित करते हैं कि अंतिम उपयोगकर्ता (कोड को डिबगिंग या संशोधित करने में शून्य रुचि के साथ) कोड के अनुकूलित संस्करण को चलाते हैं। निश्चित रूप से लोगों को यह सुनिश्चित करने के लिए कुछ बेहतर तरीका है कि वे रिलीज नोट्स में ऑप्टिमाइज़ेशन का उपयोग करें (जिसे वे शायद वैसे भी पढ़ नहीं पाएंगे)?
लिनक्स पर मैं आसानी से अंत उपयोगकर्ताओं के लिए फ़ाइल को चलाने के एक ./game
स्क्रिप्ट प्रदान कर सकते हैं:
#!/bin/sh
PYTHONOPTIMIZE=1 ./game.py $*
लेकिन है कि बहुत पार मंच नहीं है।
मैं मैं
#!/usr/bin/env PYTHONOPTIMIZE=1 python
या
#!/usr/bin/env python -O
लेकिन उन लोगों के लिए #!
लाइन बदलने के लिए अपेक्षा के अनुरूप काम नहीं हैं सक्षम होना चाहिए एक विचार है, और मुझे नहीं कर रहा हूँ सुनिश्चित करें कि वे विंडोज पर क्या करेंगे।
क्या कोड के भीतर से ऑप्टिमाइज़ेशन को नियंत्रित करने का कोई तरीका है जिसे मैं अनजान हूं? कुछ की तरह:
import runtime
runtime.optimize(True)
क्या शिपिंग बहु मंच अजगर कोड लोगों द्वारा इस क्षेत्र में सबसे अच्छा अभ्यास माना जाता है?
यह कोई जवाब नहीं है, क्योंकि एसएलओटीएस जवाब पूरी तरह से सही और संपूर्ण था। Game.sh और game.bat के साथ जाएं, यह काम करता है। लेकिन सिर्फ एक टिप्पणी: #! लाइन विंडोज पर बिल्कुल कुछ भी नहीं करती है, इसे पूरी तरह नजरअंदाज कर दिया जाता है। –