2008-11-24 6 views
9

मैं फ्लैश प्रकाशित करने के लिए प्रतीक्षा समय के बीमार हूं। .NET/VisualStudio प्रोजेक्ट्स WAAAAY तेज़ हैं - क्या यह केवल उन वर्गों को संकलित कर रहा है जो बदल गए हैं?मैं फ्लैश आईडीई परियोजनाओं के संकलन/प्रकाशन समय को कैसे बढ़ा सकता हूं

अद्यतन: क्या फ्लैश आईडीई हर बार आपके सभी ध्वनियों और छवियों को फिर से एन्कोड करता है? क्या उन्हें कहीं कैश नहीं किया जा सकता है?

उत्तर

10

फ्लैश सीएस 4 में, चेतावनी मोड को अक्षम करने से कोड संकलन को लगभग 30% (अभी भी काफी धीमी) गति मिलती है। सख्त मोड भी, लेकिन मुझे यकीन नहीं है कि किस हद तक।

लाइब्रेरी संपत्तियों के लिए, जेपीईजी को "आयातित जेपीईजी डेटा का उपयोग करें" और पीएनजी/जीआईएफ को "लूसेलेस पीएनजी/जीआईएफ" के रूप में सेट करके इष्टतम गति हासिल की जाती है। ध्वनि के लिए, मुझे 100% निश्चित नहीं है, लेकिन मुझे लगता है कि एडीपीसीएम/मोनो-टू-स्टीरियो/5 किलोहाट/2 बिट सबसे तेज़ था। [एम्बेड] टैग भी मदद कर सकता है (यह कोई रूपांतरण नहीं करता है) लेकिन इसमें फ्लेक्स कोड का थोड़ा सा हिस्सा शामिल है।

और एक टिप के रूप में, फ्लैश सीएस 4 में आप पुस्तकालय में चुनिंदा संपत्तियों को बैच कर सकते हैं और सेटिंग्स लागू कर सकते हैं, ताकि आप विकास के दौरान इष्टतम गति सेटिंग आसानी से सेट कर सकें और फिर उन्हें तैनात करने के लिए बदल सकें।

+1

प्रकाशित सेटिंग्स में चेतावनी अक्षम करने के लिए टिप के लिए धन्यवाद। जो मेरे प्रकाशन समय को 80% तक बढ़ा देता है। 25secs से 5 सेकंड से नीचे। :) –

+0

वाह, यह मुझे इतना समय बचाएगा। मैंने अक्षर एम्बेड करने के प्रभाव पर विचार नहीं किया। जीज़, इससे दस गुना तेज गति हुई। मुझे अपने सभी टेक्स्टफील्ड को पुनः सक्रिय रूप से एम्बेड करने का कोई तरीका नहीं ढूंढना है। फिर भी, बहुत दर्द बचाया गया जहां यह गिना जाता है, विकास! –

+0

बस जोड़ना चाहता था। [एम्बेड] टैग reconversion करता है। मैंने एक समान पीएनजी फ़ाइल के दो संस्करणों को दो समान फ़्लैश ऐप्स में एम्बेड करके एक परीक्षण किया। एक संस्करण सरल पीएनजी था, और दूसरा पीएनजी कंप्रेसर का उपयोग करके संपीड़ित किया गया था। नया पीएनजी लगभग 30% छोटा था, लेकिन दोनों एसडब्ल्यूएफ फाइलें एक ही आकार के थे, जैसे कि मैंने एक ही फाइल को दो बार एम्बेड किया था। – Maurycy

2

आप अपने एप्लिकेशन को .swf फ़ाइलों को अलग करने के लिए विभाजित करने का प्रयास कर सकते हैं और फिर उन्हें मुख्य फिल्म से लोड कर सकते हैं।

इसके अलावा आपके पर्यावरण को देखने के लायक हो सकता है। हो सकता है कि आपकी मशीन रैम से बाहर हो रही है, आप नेटवर्क ड्राइव का उपयोग कर रहे हैं या आपकी हार्ड डिस्क एन्क्रिप्टेड है।

यदि आवेदन इतना बड़ा हो रहा है, तो फ्लैश वास्तव में सही तकनीक है?

1

यह सब आपके प्रोजेक्ट पर निर्भर करता है। मैं कुछ एनिमेटरों के बारे में जानता हूं जो प्रसारण सामग्री प्रकाशित करने के लिए फ्लैश का उपयोग करते हैं और आमतौर पर प्रकाशित करने में लंबा समय लगता है। उनके लिए चारों ओर नहीं हो रहा है। अन्यथा, अगर एक एसडब्ल्यूएफ प्रकाशित करने में घंटों लगते हैं जो वेब पर देखा जाएगा, तो आप शायद चीजों के बारे में सही तरीके से नहीं जा रहे हैं।

इसके अतिरिक्त, कुछ स्पष्ट अपराधी जो एक एसडब्ल्यूएफ संकलित करने में लगने वाले समय को तुरंत बढ़ाते हैं, एम्बेडेड वीडियो और एम्बेडेड ध्वनि होते हैं। आउटपुट के लिए आईडीई को और अधिक आइटमों को संपीड़ित करना चाहिए (इसमें छवियां भी शामिल हैं), जितना अधिक संकलन करने में लगेगा।

1

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

1

जब संकलन बहुत धीमा होता है, तो मैं आमतौर पर लाइब्रेरी को पढ़ता हूं - लोड छवियों (पीएनजी, जेपीजी) और URLRequest के माध्यम से ध्वनि।

आम तौर पर जो चीज वास्तव में संकलक को धीमा करती है वह चित्रकार (एआई) फ़ाइलों को आयात कर रही है।

3

मेरे लिए यह पता चला कि मैंने अपने टेक्स्ट फ़ील्ड पर वर्ण फ़िल्टर हटा दिया है। यह निर्दोष लगता है, लेकिन असल में इसे हर फ्रेकिंग ग्लाइफ को एम्बेड करना पड़ता है जिसके परिणामस्वरूप एक विशाल swf फ़ाइल हो सकती है जो संकलन के लिए हमेशा के लिए ले जाती है! किसी भी तरह, निश्चित रूप से यह जांचें - मुझे लगता है कि बहुत से लोग आसानी से इसे अनदेखा कर सकते हैं।

1

यदि आप भाषाएं बदलने के इच्छुक भी हैं तो आप haXe का उपयोग कर सकते हैं। यह एसडब्ल्यूएफ के लिए संकलित है और संकलन में अविश्वसनीय रूप से तेज़ है। संभवतः उस बिंदु पर एक अलग भाषा में बदलने के लायक नहीं है, जहां आपके पास घंटों का संकलन समय है, लेकिन जब आप अपनी अगली बड़ी परियोजना शुरू कर रहे हों तो इसमें देखें।

2

संकलक फ्लैश आईडीई में बस सादा धीमा है। यदि आपके पास लाइब्रेरी में बहुत सारी छवियां हैं जिन्हें पुन: निर्यात किया जाना है, तो मैं धीमेपन को समझ सकता हूं, लेकिन संकलक केवल कोड को संकलित करते समय अस्पष्ट रूप से धीमा है।

उदाहरण के लिए, मेरे पास एक सुपर मूल Away3d दृश्य है जिसके लिए संकलन करने के लिए पांच पूर्ण सेकंड की आवश्यकता है (कोई पुस्तकालय संपत्ति नहीं)। फ्लेक्स में एक सेकंड से भी कम समय में सटीक कोड संकलित करता है। मुझे नहीं पता कि दो कंपाइलरों के बीच क्या अंतर है, लेकिन फ्लैश आईडीई में भारी कोड बेस वाला कोई भी प्रोजेक्ट करना सिर्फ सादा दर्दनाक है। जैसे ही परियोजना बढ़ती है आपको लंबे और लंबे समय तक इंतजार करना होगा।

यदि आप एक 3 डी प्रोजेक्ट या कुछ ऐसा कर रहे हैं जिसके लिए बहुत सारे कोड संकलन की आवश्यकता है, तो मैं फ्लेक्स/फ्लैश बिल्डर में एक्शनस्क्रिप्ट-केवल प्रोजेक्ट करने की सलाह देता हूं। हो सकता है कि CS5 एक बेहतर संकलक होगा ...

1

सेटिंग्स प्रकाशित करें> फ़्लैश> AS3 में अक्षम चेतावनी

2

आप अपने चरित्र को एम्बेड जांच करना चाह सकते - अगर आप गलती से एम्बेड क्लिक करते हैं तो सभी वर्ण यह एम्बेड कर सकता है के 1000s पात्र, यह आपकी प्रकाशन गति को काफी धीमा कर देगा

6

फ़ाइल में "चेतावनी मोड" अनचेक करें> सेटिंग्स प्रकाशित करें> क्रियाएँ 3.0 सेटिंग्स। यह एक बड़ा अंतर बनाता है। हाल ही में एक परियोजना में मैंने अपना संकलन समय 1 मिनट 20 सेकंड से घटाकर 7 सेकेंड कर दिया! हाँ, मैं भी आश्चर्यचकित था।

+1

वाह! इससे मेरी परियोजना में बड़ा अंतर आया। संकलन अब कुछ सेकंड लेता है। इससे पहले लगभग एक मिनट लग गया। उस महान टिप के लिए बहुत बहुत धन्यवाद! :) – drpelz

संबंधित मुद्दे