हर बार जब मैं SQLite डाउनलोड करता हूं, तो मैं इस तथ्य से आ जाता हूं कि वे अपने स्रोत कोड के कई अलग-अलग संस्करण प्रदान करते हैं, जो कि मैंने वास्तव में किसी अन्य प्रोजेक्ट को कभी नहीं देखा है। और अधिक तो वे स्रोत के समामेलन प्रदान करते हैं, इस तरह की सभी फ़ाइलों को केवल 3 फाइलों में विलय करें। इसके लिए क्या कारण है? क्या यह सिर्फ संकलन गति है? या इसके लिए कुछ वाकई अच्छे कारण हैं? क्या अन्य परियोजनाएं स्रोत कोड के समामेलन का उपयोग करती हैं?SQLite उनके कोड के समामेलन क्यों प्रदान करता है?
उत्तर
के रूप में उनके page about amalgamation
पर सीधे कहा SQLite शामिल करने के लिए आसान अन्य परियोजनाओं में किए जाने के अतिरिक्त, समामेलन भी यह तेजी से चलाने के बनाता है। कई कंपाइलर कोड पर अतिरिक्त अनुकूलन करने में सक्षम होते हैं जब यह एक एकल अनुवाद इकाई में निहित होता है जैसे कि यह समामेलन में होता है। हमने व्यक्तिगत स्रोत फ़ाइलों की बजाय SQLite संकलित करने के लिए समामेलन का उपयोग करते समय 5 से 10% के प्रदर्शन सुधार को माप लिया है। इसका नकारात्मक पक्ष यह है कि अतिरिक्त अनुकूलन अक्सर फ़ंक्शन इनलाइनिंग का रूप लेते हैं जो परिणामी बाइनरी छवि के आकार को बड़ा बनाता है।
मैं स्वयं अन्य परियोजनाओं में सबसे बड़ा लाभ शामिल करता हूं। यह बस संकलन करने के लिए यह बहुत आसान बनाता है। स्रोत निर्माण फ़ाइलों का एक बड़ा संग्रह होने से कोई भी स्क्रिप्ट गड़बड़ नहीं है और जो भी कुछ भी है।
यह मौजूदा परियोजनाओं में शामिल करने के लिए आसान है। अपनी परियोजना में एक .h और एक .c जोड़ें, और आपके पास पूर्ण SQLite इंजन है।
मैं इसकी सराहना करता हूं। मुझे एक कम चीज़ है जिसके बारे में मुझे चिंता करना है।
यह देखने के लिए एक और तरीका है। –
"यह एक कम चीज़ है जिसके बारे में मुझे चिंता करना है।" - तब तक जब तक SQLite में खोज की गई सुरक्षा दोष (या अन्य गंभीर बग) नहीं है; तो * उनकी * बग * आपकी * समस्या बन जाती है। –
जब मैं देव सी ++ कंपाइलर के साथ खिड़कियों के नीचे अलग-अलग फ़ाइलों में समामेलन फ़ाइल को विभाजित करता हूं, तो मुझे बहुत सारे प्रश्न मिलते हैं। क्योंकि मैं एक आरटीओएस में काम कर रहा स्क्लाइट बनाना चाहता हूं जो डीजेवाईओएस नामक है, अलग-अलग फाइलों से कोड को समामेलन से बदलना आसान है।
- 1. SQLite कोड ऑनलाइन परीक्षण
- 2. क्यों बढ़ावा करता :: संस्करण प्रदान नहीं ऑपरेटर! =
- 3. IENumerable <T> दो GetEnumerator विधियों को प्रदान करता है - उनके बीच क्या अंतर है?
- 4. SQLite त्रुटि: - जावा कोड
- 5. क्यों Data.Time.Clock डिफटाइम और नाममात्र डिफटाइम प्रदान करता है?
- 6. जेपीए CriteriaQuery क्यों अद्यतन क्वेरी प्रदान नहीं करता है?
- 7. jQuery क्यों .firstChild विधि प्रदान नहीं करता है?
- 8. निम्न कोड MSVC++ के साथ संकलित क्यों करता है?
- 9. SAML वास्तव में सुरक्षा प्रदान करता है?
- 10. SQLite समर्थन प्रतिकृति करता है?
- 11. SQLite समर्थन SCOPE_IDENTITY करता है?
- 12. यह हास्केल कोड क्यों संकलित करता है?
- 13. यह सी कोड संकलित क्यों करता है?
- 14. यह कोड स्निपेट संकलित क्यों करता है?
- 15. क्या ग्रोवी एक तंत्र प्रदान करता है?
- 16. matplotlib क्यों प्रदान करता है .ttf फ़ॉन्ट का उपयोग नहीं करता है?
- 17. SQLite त्रुटि कोड 17
- 18. त्रुटि देने के बजाय sqlite डेटाबेस ब्राउज़र फ्रीज क्यों करता है?
- 19. क्यों संकलक इस कोड के साथ अलग व्यवहार करता है?
- 20. क्या पृष्ठभूमिवर्कर वास्तविक मल्टीथ्रेडिंग प्रदान करता है?
- 21. क्या easy_install खोज कमांड प्रदान करता है?
- 22. SQLite अपवाद: SQLite व्यस्त
- 23. प्रदान करता है और सी # में समकक्ष लागू करता
- 24. jQuery विंडो ऑब्जेक्ट को उनके दायरे में क्यों पास करता है
- 25. क्यों जावा क्यू से तत्व को हटाने के लिए दो विधियों प्रदान करता है?
- 26. क्यों Magento डेवलपर्स के लिए गाइड या मैनुअल प्रदान नहीं करता है?
- 27. हास्केल एक-आयामी Arrays के लिए फ़ोल्ड प्रदान क्यों नहीं करता है?
- 28. SQLite सी # ORM कोड पीढ़ी
- 29. परीक्षण कोड जो एंटरप्राइज़ लाइब्रेरी पर निर्भरता है भले ही यह इंटरफेस प्रदान नहीं करता है?
- 30. क्या Orbitz.com एकीकरण के लिए वाणिज्यिक एपीआई प्रदान करता है?
धन्यवाद! ध्यान नहीं दिया कि उनके पास पृष्ठ –
आपका स्वागत है :) – Zuu