2012-06-04 16 views
8

मैं डेल्फी XE2 उपयोग कर रहा हूँ अपडेट 4 हॉटफिक्स 1FireMonkey प्रदर्शन के मुद्दों

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

uses 
    FMX.Forms, fmx.Types,.. 

{$R *.res} 

begin 
    Application.Initialize; 

    GlobalUseHWEffects := False ; 
    GlobalUseDirect2D := False ; 
    GlobalUseDirect2DSoftware := False ; 
    GlobalUseGDIPlusClearType := True ; 
    GlobalDisableFocusEffect := True ; 

    Application.CreateForm(...); 
    Application.Run; 
end. 

अब यह काम करता है के रूप में मैं किसी भी समस्या के बिना की उम्मीद है, लेकिन CPU उपयोग (25% जब माउस को ले जाकर)

तब मैं

GlobalUseHWEffects := true ; 
    GlobalUseDirect2D := False ; 
    GlobalUseDirect2DSoftware := False ; 
    GlobalUseGDIPlusClearType := True ; 
    GlobalDisableFocusEffect := True ; 

अब सब कुछ के रूप में मेरे कोड संशोधित पिछले के रूप में है चिकनी काम कर रहा है, स्टेटस समय में केवल एक छोटी देरी है और सीपीयू उपयोग बहुत कम है (0 - 2%)। (यही कारण है कि मुझे फायरमोनकी की आवश्यकता है)

अब सभी नियंत्रण अपेक्षा के अनुसार काम कर रहे हैं Menubar, ऊपर मेनू सेटिंग्स पर लागू नहीं हैं और यह डिफ़ॉल्ट व्यवहार के साथ काम कर रहा है (पूरे ऐप कुछ सेकंड के लिए फ्रीज)।

इस समस्या को पूरा करने के लिए मैं क्या कर सकता हूं।

+0

यह वास्तव में पॉपअप मेनू में एक समस्या है, और मेनू बार पॉपअप मेनू का उपयोग करते हैं। – VibeeshanRC

+0

गलती के लिए खेद है यह सब केवल अंधेरे विषय के साथ ठीक काम करेगा, विंडोज़ थीम – VibeeshanRC

उत्तर

1

वास्तविक समस्या कुछ firemonkey प्रभाव और Firemonkeys डिफ़ॉल्ट सेटिंग्स

डिफ़ॉल्ट GlobalUseDirect2D = true साथ था, जबकि GlobalUseHWEffects := true प्रदर्शन जारी करने के लिए असली कारण है, सक्रिय करने के दोनों मेरे machine.So में दोनों सीपीयू और GPU उपयोग कर रहा है में से एक बना उन्हें झूठी बात है। मैं आपको सीपीयू के कम उपयोग के लिए GlobalUseDirect2D = false और GlobalUseHWEffects := true करने की सलाह देता हूं।

And now you will be also able to get improved fonts (best ever firemonkey can generate)

नहीं सभी ग्राहकों को उच्च अंत ग्राफिक GPUs

मैं एक इंटेल मोबाइल ग्राफिक चिप का उपयोग कर रहा है, तो मैं नहीं लगता है कि मेरी एक करने के लिए सभी क्षमताओं होगा है सभी firemonkey प्रभाव का समर्थन करें। कोड निम्न और टिप्पणी FMX.Types

// On low-end hardware or mobile bitmap effects are slowly 
    GlobalDisableFocusEffect: Boolean = False; 

में देखा जा सकता है, लेकिन मैं नहीं समझ सकता है कि वे यह डिफ़ॉल्ट रूप से झूठी बना दिया है। (ताकि सक्षम और अक्षम ग्राहक GPU क्षमताओं पर निर्भर करता है)

GlobalDisableFocusEffect द्वारा आप प्रभाव का उपयोग करने के लिए कोई और अधिक सक्षम होगा (जैसे: outergloweffect) .... लेकिन फिर से इस बयान अभी भी कोई अधिक सच है ....

GlobalDisableFocusEffect नहीं सभी प्रभावों को अक्षम,

उदाहरण के लिए

द्वारा

  1. डार्क शैली में headeritemstyle में
  2. Tinnergloweffect ठंड का कारण है खिड़कियों शैली में बटन शैली है Tinnergloweffect में कारण ठंड।

और वहाँ उदाहरण के टन हो सकता है ...

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

+0

के साथ नहीं, उपर्युक्त उत्तर केवल उन लोगों के लिए है जो अभी भी हॉटफिक्स 1 के साथ समस्याएं हैं, लेकिन फिर भी मुझे लगता है कि "GlobalUseDirect2D = True GlobalUseHWEffects: = true" सभी के लिए एक समस्या है क्योंकि यह जीपीयू और सीपीयू दोनों का उपयोग कर रहा है, अगर मैं गलत हूं तो मुझे सही करें, यह मेरे इंटेल जीपीयू में मेरे परीक्षणों से मेरा निष्कर्ष है। – VibeeshanRC

+0

क्या आपने एक क्यूसी पोस्ट की है? – RBA

+0

@ आरबीए, अभी तक नहीं, मुझे नहीं लगता कि वे इसे एक बग के रूप में स्वीकार करेंगे। – VibeeshanRC

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