मैं एक बड़ी पायथन परियोजना के कुछ बिट्स को तेज करने के लिए सी उठा रहा हूं। निरंतर चल रहे पायथन लिपि में नए फ़ंक्शंस जोड़ने के लिए, मैंने कभी-कभी एक .py फ़ाइल की जांच की है और इसकी सामग्री को एकीकृत किया है। मैं सोच रहा था कि सी में समकक्ष करने का कोई तरीका था या नहीं, क्या फ्लाई पर गतिशील लाइब्रेरी की सामग्री लेने का कोई तरीका है?सी में, क्या गतिशील लाइब्रेरी को पुन: संकलित करके चल रहे प्रक्रिया में नए कोड को एकीकृत करना संभव है?
उत्तर
हां, आपको संकलन समय पर जोड़ने के बजाय लाइब्रेरी तक पहुंचने के लिए dlopen
का उपयोग करने की आवश्यकता है, फिर dlsym
इसके भीतर फ़ंक्शंस एक्सेस करने के लिए। एक नई लाइब्रेरी में स्विच करने के लिए आपको dlclose
हैंडल की आवश्यकता होगी और एक नया मॉड्यूल बनाना होगा - इसे मॉड्यूल में लपेटने के लिए इसे सभी को संभालना बहुत मुश्किल काम नहीं है।
पर एक संभाल पाता हूं तो मैं वास्तव में साइथन के साथ जा सकता हूं। चल रही प्रक्रिया में 'dlclose' का उपयोग करना मुश्किल हो सकता है। आपको यह सुनिश्चित करना होगा कि पुराने पुस्तकालय के लिए कोई संदर्भ नहीं है (उदा। इसमें एक स्थिर चर के लिए एक सूचक)। – ugoren
मुझे यह उल्लेख करने लायक लगता है कि यद्यपि आप अपनी पसंद के किसी भी lib को लिंक कर सकते हैं और जब तक आप जानते हैं कि प्रतीक नाम किसी भी फ़ंक्शन का संदर्भ प्राप्त करता है, तो आपको ** अब ** फ़ंक्शन हस्ताक्षर अग्रिम में चाहिए यदि आप चाहें इसे सफलतापूर्वक कॉल करने के लिए। – alk
वास्तव में सच नहीं है। सिद्धांत रूप में आपके पास एक एकल परिभाषित फ़ंक्शन हस्ताक्षर हो सकता है जो शेष मॉड्यूल के हस्ताक्षर और साथ ही अनुकूलन डेटा प्रदान करता है जो आपके लोडर मॉड्यूल के बाद पार्स + उपयोग करता है। यह बड़ा और अनावश्यक होगा, लेकिन आप इसे कर सकते हैं। –
आप इसे LoadLibrary/FreeLibaray के साथ विंडोज़ में कर सकते हैं मुझे यकीन है कि एक यूनिक्स समतुल्य है।
- 1. क्या गतिशील रूप से गो कोड लोड करना संभव है?
- 2. चल रहे प्रक्रिया (यूनिक्स)
- 3. क्या सी # कोड खंडों को गतिशील रूप से संकलित और निष्पादित करना संभव है?
- 4. चल रहे प्रक्रिया को संभाल लें
- 5. क्या सी # प्रोजेक्ट में सी कोड एम्बेड करना संभव है?
- 6. सी #+ कोड को सी # से कॉल करना संभव है?
- 7. क्या चल रहे PHP प्रक्रिया में डीबगर संलग्न करना संभव है?
- 8. क्या डेल्फी एक्सई में डेटास्नाप पैकेज को इंडी के एक नए/अलग संस्करण के साथ पुन: संकलित करना संभव है?
- 9. क्या मॉकिटो में विभिन्न धागे में चल रहे एक नकली विधि को सत्यापित करना संभव है?
- 10. प्रक्रिया पुन: पेरेंटिंग: नए माता-पिता को नियंत्रित करना
- 11. क्या जेबीहेव को टेस्टएनजी के साथ एकीकृत करना संभव है?
- 12. क्या मोड-स्विचिंग करके 64-बिट प्रक्रिया में 32-बिट कोड निष्पादित करना संभव है?
- 13. क्या एक्वैप्से के साथ Jquery को एकीकृत करना संभव है?
- 14. एक चल रहे पायथन प्रक्रिया को डिबग करना
- 15. क्या सी # कोड ब्लॉक को क्रमबद्ध करना संभव है?
- 16. क्या केक-पैटर्न और मैक्रोज़ को एकीकृत करना संभव है?
- 17. क्या डी 2 से जावास्क्रिप्ट में संकलित करना संभव है?
- 18. बिल्ड प्रक्रिया में स्वचालित वेब परीक्षण को एकीकृत करना
- 19. क्या सी # नामस्थान उपनाम को उलटा करना संभव है?
- 20. क्या सी सी लाइब्रेरी में हास्केल को अपर्याप्त रूप से एम्बेड करना संभव है?
- 21. क्या सी में ऑपरेटरों को अधिभारित करना संभव है?
- 22. क्या LINQPad में LINQ का उपयोग करके संग्रहीत प्रक्रिया को कॉल करना संभव है?
- 23. एक विशिष्ट बूस्ट लाइब्रेरी को संकलित करना
- 24. क्या जावा को दूसरी भाषा में कोड करना संभव है?
- 25. क्या प्रक्रिया के भीतर setlocale() को अक्षम करना संभव है?
- 26. क्या जावा स्रोत कोड को केवल स्मृति में प्रोग्रामेटिक रूप से संकलित करना संभव है?
- 27. पाइथन को WebAssembly में संकलित करना
- 28. लिनक्स में चल रहे सी ++ प्रोग्राम को डीबग कैसे करें?
- 29. संकलन कोड को गतिशील सी #
- 30. क्या सी # में इवेंट हैंडलर को "चेन" करना संभव है?
क्या आपने ध्यान देने की आवश्यकता वाले कोड को तेज़ करने के लिए http://cython.org/ या http://pypy.org/ का उपयोग करने पर विचार किया है? – ChrisProsser
@ChrisProsser। मैंने पिल्ला माना था, लेकिन सी सीखने का यह एक अच्छा बहाना था। जब मैं सी –