2013-04-02 4 views
7

मैंने हाल ही में ठेठ उपयोग परिदृश्यों में क्यूओब्जेक्ट के ऊपरी हिस्से के बारे में एक प्रश्न पोस्ट किया है, लेकिन दुर्भाग्य से सवाल किसी अन्य प्रश्न के डुप्लिकेट के रूप में बंद हो गया है जिसने तकनीकी रूप से प्रश्न का उत्तर नहीं दिया।वास्तव में QObject कितना भारी है?

क्या बुरा है, जल्दबाजी में "समरिटान" जो विनम्रतापूर्वक मेरे प्रश्न को बंद करने के लिए पहुंचे, उन्होंने जवाब में बाधा डाली, मैं कुछ परीक्षण चलाने के बाद टाइपिंग खत्म कर रहा था। चूंकि अब मैं अपने मूल प्रश्न में अपने निष्कर्ष पोस्ट नहीं कर सकता हूं, इसलिए मैं इसे यहां पोस्ट करूंगा ताकि यह उन लोगों के लिए उपलब्ध हो जिन्हें उस जानकारी की आवश्यकता हो।

+5

यहां सब कुछ एक डुप्लिकेट के रूप में चिह्नित करने के लिए दौड़ने से मुझे पूरी तरह से पागल हो जाता है। यही कारण है कि मैं शायद ही कभी यहां पोस्ट करता हूं। आपको लगता है कि प्रोग्रामर समझेंगे कि एक सामान्य, सामान्य उत्तर * एक विशिष्ट प्रश्न पर * लागू नहीं हो सकता है। आपका प्रश्न/उत्तर * बिल्कुल * था जो मैं खोज रहा था, ** नहीं ** जिसने हर किसी ने आपके प्रश्न का उत्तर दिया था। इसे पोस्ट करने के लिए धन्यवाद! –

उत्तर

9

बहुत से लोगों ने क्यूओब्जेक्ट पर भारी संकेत दिया है, लेकिन बिना किसी स्पष्टता के यह कितना भारी है। तो मैंने कुछ माप किए, बहुत सटीक नहीं, सभी मूल्य अनुमानित हैं।

  • अप्रयुक्त QObject ~ 160 बाइट्स
  • एकल ऑटो कनेक्शन w/तर्क ओ ~ 235 बाइट्स
  • 2 ऑटो कनेक्शन w/तर्क ओ ~ 315 बाइट्स
  • 3 ऑटो कनेक्शन, 1 से 3 तर्क के साथ ~ 400 बाइट्स
  • 2 ऑटो कनेक्शन, 1 से 3 तर्क ~ 432 बाइट्स

उन संख्याओं को मैं एक 64 बिट क्यूटी निर्माण का उपयोग कर रहा ध्यान में रखना चाहिए के साथ कतार में है।

तो, निष्कर्ष में, QObject का ओवरहेड वास्तव में काफी महत्वपूर्ण है। छींकने या अत्यधिक उपयोग करने के लिए कुछ भी नहीं।

+0

मुझे लगता है कि यह बेहतर होगा यदि आप इस जवाब को http://stackoverflow.com/questions/1274022/getting-the-size-of-a-qt-object पर जोड़ दें और इस प्रश्न को हटाएं (या विलय करने के लिए ध्वज मॉडरेटर) । यदि आप ऐसा करते हैं तो मैं इसे ऊपर उठाने का एक बिंदु बनाउंगा :-) – hyde

+0

और जब आप इसमें हों, तो शायद बताएं कि कौन सा मंच (ओएस, कंपाइलर संस्करण, 32/64 बिट्स) मापा जाता है, क्योंकि इससे निश्चित रूप से प्रभावित होगा परिणाम। – hyde

+0

@hyde - सबसे प्रासंगिक बात यह है कि बिल्ड 64 बिट है और यह ज्यादातर इनट्स और पॉइंटर्स के कारण है, जिसका मैंने उल्लेख किया था। मुझे नहीं लगता कि बाकी के आकार में महत्वपूर्ण अंतर आएंगे। फिर भी, ओएस विंडोज 7 64 बिट है और संकलक MSVC2012 – dtech

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