Czas ładowania bibliotek współdzielonych a bibliotek statycznych

Mam pytanie na temat bibliotek współdzielonych a czas ładowania bibliotek statycznych.

Załóżmy, że mam plik wykonywalny foo.exe, który używa liba, libb, libc. Również w danym momencie na komputerze działa ponad 10 wystąpień pliku wykonywalnego.

Jeśli powyższe 3 biblioteki były bibliotekami współdzielonymi: 1st Insance jest ładowany do pamięci RAM: czas potrzebny na załadowanie pamięci przez main () z foo.exe (zakładając, że jest znikomy) + czas ładowania liba + czas ładowania libb + czas na załadowanie libc 2. instancji jest uruchomiony: Załóżmy teraz, że uruchomione jest drugie wystąpienie tego pliku wykonywalnego. Ponieważ wszystkie biblioteki są już załadowane do pamięci głównej, czas potrzebny jest tylko na załadowanie main () do pamięci, która jest pomijalna.

Teraz, jeśli powyższe 3 biblioteki byłyby bibliotekami statycznymi: 1st Insance jest ładowany do RAM: czas potrzebny na załadowanie pamięci przez main () z foo.exe (zakładając, że jest znikomy) + czas na załadowanie liba + czas na załadowanie libb + czas na załadowanie libc (Offcourse teraz cała część pliku wykonywalnego jako całości) 2. instancja jest uruchomiona: Załóżmy teraz, że uruchomione jest drugie wystąpienie tego pliku wykonywalnego. Czas potrzebny będzie ponownie zajęty przez main () z foo.exe na załadowanie pamięci (zakładając, że jest znikomy) + czas na załadowanie liba + czas na załadowanie libb + czas na załadowanie libc. (Ponieważ każdy plik wykonywalny nie może współużytkować librareals, ponieważ są to statyczne librarery)

Zatem mój wniosek jest taki, że przy bibliotece statycznej czas ładowania będzie większy. Ale powiedziano mi, że biblioteki współdzielone zajmują więcej czasu podczas ładowania niż biblioteki statyczne, więc wystąpi opóźnienie, więc biblioteki współdzielone nie są dobrym rozwiązaniem. Jak to jest możliwe ?

questionAnswers(3)

yourAnswerToTheQuestion