2009-02-18 26 views
5

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

उत्तर

10

के रूप में उनके page about amalgamation

पर सीधे कहा SQLite शामिल करने के लिए आसान अन्य परियोजनाओं में किए जाने के अतिरिक्त, समामेलन भी यह तेजी से चलाने के बनाता है। कई कंपाइलर कोड पर अतिरिक्त अनुकूलन करने में सक्षम होते हैं जब यह एक एकल अनुवाद इकाई में निहित होता है जैसे कि यह समामेलन में होता है। हमने व्यक्तिगत स्रोत फ़ाइलों की बजाय SQLite संकलित करने के लिए समामेलन का उपयोग करते समय 5 से 10% के प्रदर्शन सुधार को माप लिया है। इसका नकारात्मक पक्ष यह है कि अतिरिक्त अनुकूलन अक्सर फ़ंक्शन इनलाइनिंग का रूप लेते हैं जो परिणामी बाइनरी छवि के आकार को बड़ा बनाता है।

मैं स्वयं अन्य परियोजनाओं में सबसे बड़ा लाभ शामिल करता हूं। यह बस संकलन करने के लिए यह बहुत आसान बनाता है। स्रोत निर्माण फ़ाइलों का एक बड़ा संग्रह होने से कोई भी स्क्रिप्ट गड़बड़ नहीं है और जो भी कुछ भी है।

+0

धन्यवाद! ध्यान नहीं दिया कि उनके पास पृष्ठ –

+0

आपका स्वागत है :) – Zuu

4

यह मौजूदा परियोजनाओं में शामिल करने के लिए आसान है। अपनी परियोजना में एक .h और एक .c जोड़ें, और आपके पास पूर्ण SQLite इंजन है।

मैं इसकी सराहना करता हूं। मुझे एक कम चीज़ है जिसके बारे में मुझे चिंता करना है।

+0

यह देखने के लिए एक और तरीका है। –

+0

"यह एक कम चीज़ है जिसके बारे में मुझे चिंता करना है।" - तब तक जब तक SQLite में खोज की गई सुरक्षा दोष (या अन्य गंभीर बग) नहीं है; तो * उनकी * बग * आपकी * समस्या बन जाती है। –

0

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

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