Mam pytanie dotyczące czasu ładowania bibliotek współdzielonych a statycznych.Czas ładowania bibliotek współdzielonych a bibliotek statycznych
Załóżmy, że mam plik wykonywalny foo.exe, który używa liba, libb, libc. Również w danym momencie istnieje więcej niż 10 wystąpień pliku wykonywalnego uruchomionego na komputerze.
Teraz, jeśli powyższe 3 biblioteki były bibliotekami współdzielonymi: Pierwsza Insance jest ładowana do pamięci RAM: Czas potrzebny do wykonania to czas pobierany przez main() foo.exe, aby załadować pamięć (przy założeniu, że jest pomijalny) + czas ładowania liba + czas ładowania Libb + czas ładowania libc Druga instancja jest uruchomiona: Załóżmy teraz, że uruchomiona jest druga instancja tego pliku wykonywalnego. Ponieważ wszystkie biblioteki są już załadowane do pamięci głównej, czas jest zajęty tylko dla załadowania głównej() do pamięci, która jest pomijalna.
Teraz, jeśli powyższe 3 biblioteki biblioteki tłoczenia: 1-te Insance jest ładowana do pamięci RAM: Czas potrzebny będzie czas potrzebny główne (I) foo.exe być ładowane pamięci (przy założeniu, że jego nieznaczny) + Czas do wczytaj liba + czas ładowania Libb + czas ładowania libc (Offcourse jest teraz całą częścią pliku wykonywalnego jako całości) Druga instancja jest uruchomiona: teraz załóżmy, że uruchomiona jest druga instancja tego pliku wykonywalnego. Pobrany czas to ponownie czas zajęty przez main() foo.exe do załadowania pamięci (przy założeniu, że jest pomijalny) + czas ładowania liba + time, aby załadować libb + czas, aby załadować libc. (Ponieważ każdy plik wykonywalny może współdzielić librareie, ponieważ są to statyczne biblioteki)
Podsumowując, w przypadku biblioteki statycznej czas ładowania będzie większy. Ale powiedziano mi, że współdzielone biblioteki zabierają więcej czasu podczas ładowania niż biblioteki statyczne, więc będzie opóźnienie, a więc biblioteki dzielone nie są dobrym rozwiązaniem. Jak to jest możliwe ?
Bardzo dziękuję za tę niewiarygodnie szybką odpowiedź, mamy 2 scenariusze architektoniczne, podałem moje pytanie jako odpowiedź na moje pytanie, które znajduje się poniżej. – sud