câu trả lời của tôi là dựa vào cách Linux/glibc/ELF công trình mối liên kết năng động, nhưng tôi sẽ giả định câu trả lời chung là như nhau cho các nền tảng khác:
Có sự khác biệt giữa các cuộc gọi đầu tiên vào một động nạp biểu tượng và các cuộc gọi tiếp theo. Cuộc gọi đầu tiên là tốn kém, có thể liên quan đến nhiều chu kỳ. Tất cả các cuộc gọi khác đều cách nhau ít hơn 1 - 2 lệnh.
Cách hoạt động là trình liên kết thiết lập mục nhập trong Bảng liên kết thủ tục lấy địa chỉ cho hàm bên ngoài đó từ Bảng bù toàn cầu. Lúc đầu, hãy gọi địa chỉ của các điểm GOT tới một nhánh để chạy trình liên kết động để giải quyết địa chỉ thực của hàm trong tệp DLL. Điều này có thể mất rất nhiều chu kỳ, nhưng một khi nó được thực hiện một lần, trình liên kết động sẽ dẫn đường vào GOT để trỏ trực tiếp đến hàm, vì vậy lần sau mã PLT được gọi sẽ gọi trực tiếp đến hàm.
Đây là một liên kết đến một đi bộ khá tốt thông qua các quá trình này: http://www.technovelty.org/linux/pltgot.html
thể trùng lặp của [Overhead của DLL] (http://stackoverflow.com/questions/4030043/overhead-of-dll) –