मेरा जवाब कैसे लिनक्स/glibc/ELF गतिशील लिंकर काम करता है पर आधारित है, लेकिन मैं यह मान लेगा समग्र जवाब अन्य प्लेटफार्मों के लिए एक ही है:
वहाँ एक गतिशील लोड करने के लिए पहली कॉल बीच एक अंतर है प्रतीक और अगली कॉल। पहला कॉल महंगा है, इसमें कई चक्र शामिल हो सकते हैं। अन्य सभी कॉल कम से कम 1 - 2 निर्देश दूर हैं।
जिस तरह से यह काम करता है वह यह है कि लिंकर प्रक्रिया लिंकेज तालिका में एक प्रविष्टि स्थापित करता है जो उस बाहरी फ़ंक्शन के लिए वैश्विक ऑफसेट तालिका से पता लगाता है। पहले जीओटी पॉइंट्स के पते को एक स्टब पर कॉल करें जो डीएलएल में फ़ंक्शन के वास्तविक पते को हल करने के लिए गतिशील लिंकर चलाता है। यह बहुत सारे चक्र ले सकता है, लेकिन एक बार यह एक बार किया जाता है, गतिशील लिंकर सीधे जीओटी प्रविष्टि को फंक्शन पर इंगित करने के लिए पथित करेगा, इसलिए अगली बार पीएलटी कोड कहा जाता है, यह सीधे फ़ंक्शन पर कॉल करेगा। http://www.technovelty.org/linux/pltgot.html
[DLL के ओवरहेड] के संभावित डुप्लिकेट (http://stackoverflow.com/questions/4030043/overhead-of-dll) –