-
Data: 2017-11-17 17:28:02
Temat: Re: Architektura aplikacji - powody wyłączania dll z exe
Od: Sebastian Biały <h...@p...onet.pl> szukaj wiadomości tego autora
[ pokaż wszystkie nagłówki ]On 11/17/2017 10:29 AM, Maciej Sobczak wrote:
> A ile ta przeciętna poważna aplikacja zajmowałaby gdyby była zlinkowana statycznie?
Nie jesteś w stanie przeprowadzić doświadczenia, jest zbyt kosztowne.
Możesz liczyć jednak że exe będzie miał powiedzmy 2GB rozmiaru jesli
suma dllek jest rzedu 2.5GB. Wyssałem to z palca, ale palec wcześniej
miał kontakt z takimi rozmiarami i takim kodem.
> Przykład obrazkowy (nierealny, ale łatwy): jest biblioteka funkcji, nich będzie, że
matematycznych. Jest tam 1000 funkcji i biblioteka w postaci DLL ma 1000MB, czyli
średnio 1MB/funkcję. Program korzysta tylko z jednej funkcji i powiedzmy, że jest ona
niezależna od innych. Taki program wciąga 1GB DLL dynamicznie (i korzysta tylko z 1
promila tego) albo jest tylko o 1MB grubszy statycznie.
Opisujesz inny przypadek. Ja opisuje przypadek kiedy *cały* kod w
dllkach jest unikatowy, używay, ale niekoniecznie ładowany od razu bo
nie ma takiej potrzeby.
> Ponawiam pytanie: ile przeciętna poważna aplikacja (taka na kilka GB) zajmuje po
statycznym linkowaniu? I jak to wpływa na jej czas uruchamiania?
Nie przypuszczam abyś dal radę przeprowadzić to doświadczenie. Ale
pozwole sobie na podstawie własnych doświadczeń zasugerować że:
a) mniej więcej tyle samo co suma dll minus specjalizacje templates i
meta szum dll
b) ilośc zmiennych statycznych które musisz zainicjować od razu jest
większa niż gdy aplikacja ladowana jest po kawałku, co spowolni proces
startu.
c) ilośc danych do relokacji od razu jest znacząco większa
Jeśli chcesz zobaczyć *naprawdę* duże aplikacje to zerknij na rynek EDA.
Np. sciągnij instalator Vivado, który wcale nie jest jakoś specjalnie
duży jak na ta branżę a na przeciętnym klikaczu robi wrażenie. Ten
projekt, gdyby go statycznie zlinkowac, miał by całkiem sporo problemów
związanych z czasami ladowania, zajętością pamięci, współdzieleniem kodu
i co najwazniejsze był by kilka razy większy.
Dla ilustracji: zakładając że masz 100MB kodu w dll i musisz szerować to
między dwa exe (bo taką masz architekturę). W przypadku dynamicznych
biblitek te 100MB można szerować między dwa procesy. Po statycznym
linkowaniu nie bo to różne exe. Oczywiście trzeba wziąć poprawkę na
gówniany x86 ale na szczęscie to badziewie już znika z rynku. Aplikacji
ktore dostarczają wiele exe w jednej instalacji dzieląc kod jest
pierdyliard.
Dla ilustracji2: wyobraź sobie że masz aplikację edytora która tylko
wtedy kiedy trzeba laduje parser gramatyki Perla. Jeśli nie otwierasz
plików perla to po ch... ma to siedzieć w pamięci? Jeszcze kilka lat
temu było to problemem z uwagi na 4GB przestrzeni adresowej więc
ładowanie wszystkiego bylo mało sensowne bo zabierałes przestrzeń na
projekt użytkownika.
Następne wpisy z tego wątku
- 17.11.17 17:35 Sebastian Biały
- 17.11.17 18:11 s...@g...com
- 17.11.17 18:29 Sebastian Biały
- 18.11.17 11:38 M.M.
- 19.11.17 13:21 fir
- 19.11.17 14:02 fir
- 19.11.17 14:11 fir
- 19.11.17 18:26 m...@k...org
- 19.11.17 18:28 m...@k...org
- 20.11.17 08:08 M.M.
- 20.11.17 12:57 Maciej Sobczak
- 20.11.17 13:42 Maciej Sobczak
- 20.11.17 17:26 fir
- 20.11.17 17:31 fir
- 20.11.17 22:53 Sebastian Biały
Najnowsze wątki z tej grupy
- Na grupie comp.os.linux.advocacy CrudeSausage twierdzi, że Micro$lop używa SI do szyfrowania formatu dok. XML
- Błąd w Sofcie Powodem Wymiany 3 Duńskich Fregat Typu Iver Huitfeldt
- Grok zaczął nadużywać wulgaryzmów i wprost obrażać niektóre znane osoby
- Can you activate BMW 48V 10Ah Li-Ion battery, connecting to CAN-USB laptop interface ?
- We Wrocławiu ruszyła Odra 5, pierwszy w Polsce komputer kwantowy z nadprzewodzącymi kubitami
- Ada-Europe - AEiC 2025 early registration deadline imminent
- John Carmack twierdzi, że gdyby gry były optymalizowane, to wystarczyły by stare kompy
- Ada-Europe Int.Conf. Reliable Software Technologies, AEiC 2025
- Linuks od wer. 6.15 przestanie wspierać procesory 486 i będzie wymagać min. Pentium
- ,,Polski przemysł jest w stanie agonalnym" - podkreślił dobitnie, wskazując na brak zamówień.
- Rewolucja w debugowaniu!!! SI analizuje zrzuty pamięci systemu M$ Windows!!!
- Brednie w wiki - hasło Dehomag
- Perfidne ataki krakerów z KRLD na skrypciarzy JS i Pajton
- Instytut IDEAS może zacząć działać: "Ma to być unikalny w europejskiej skali ośrodek badań nad sztuczną inteligencją."
- Instytut IDEAS może zacząć działać: "Ma to być unikalny w europejskiej skali ośrodek badań nad sztuczną inteligencją."
Najnowsze wątki
- 2025-08-06 Gdynia => Konsultant wdrożeniowy (systemy controlingowe) <=
- 2025-08-06 Białystok => Inżynier oprogramowania .Net <=
- 2025-08-06 "[...] sejmowe wystąpienie posłanki Klaudii Jachiry, która zakończyła je słowami ,,Sława Ukrainie"."
- 2025-08-05 "Chiny przekraczają w wydobyciu 4 mld ton węgla, Indie i USA ponad 1 mld, a Rosja 500 mln ton [...]"
- 2025-08-05 Panuje się 181 159,42 zł./mies. na posła w 2026r.
- 2025-08-05 "Chiny przekraczają w wydobyciu 4 mld ton węgla, Indie i USA ponad 1 mld, a Rosja 500 mln ton [...]"
- 2025-08-05 Czy cos fi przechodzi przez trafo separujące?
- 2025-08-05 kajaki i promile
- 2025-08-05 Re: Tesla jest bezpieczna, wczoraj spaliła się doszczętnie na Ursynowie i nikomu się nic nie stało
- 2025-08-05 Gdynia => Przedstawiciel handlowy / KAM (branża TSL) <=
- 2025-08-05 Re: Atak na lekarza w Oławie. Policja zatrzymała sprawcę na lotnisku Polska Agencja Prasowa 4 sierpnia 2025, 12:16 FACEBOOK X E-MAIL KOPIUJ LINK W szpitalu w Oławie 37-letni pacjent zaatakował lekarza, po tym, jak ten odmówił mu wypisania długoterminowego
- 2025-08-05 B2B i książka przychodów i rozchodów
- 2025-08-04 Re: Atak na lekarza w Oławie. Policja zatrzymała sprawcę na lotnisku Polska Agencja Prasowa 4 sierpnia 2025, 12:16 FACEBOOK X E-MAIL KOPIUJ LINK W szpitalu w Oławie 37-letni pacjent zaatakował lekarza, po tym, jak ten odmówił mu wypisania długoterminowego
- 2025-08-04 Na grupie comp.os.linux.advocacy CrudeSausage twierdzi, że Micro$lop używa SI do szyfrowania formatu dok. XML
- 2025-08-04 Na grupie comp.os.linux.advocacy CrudeSausage twierdzi, że Micro$lop używa SI do szyfrowania formatu dok. XML