eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programmingArchitektura aplikacji - powody wyłączania dll z exeRe: Architektura aplikacji - powody wyłączania dll z exe
  • Path: news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed2.atman.pl!newsfeed.atman.pl!.P
    OSTED!not-for-mail
    From: Sebastian Biały <h...@p...onet.pl>
    Newsgroups: pl.comp.programming
    Subject: Re: Architektura aplikacji - powody wyłączania dll z exe
    Date: Fri, 17 Nov 2017 17:28:02 +0100
    Organization: ATMAN - ATM S.A.
    Lines: 46
    Message-ID: <oun2nc$r4t$1@node2.news.atman.pl>
    References: <0...@g...com>
    <oukn36$l7m$1@node2.news.atman.pl>
    <4...@g...com>
    NNTP-Posting-Host: 176.115.86.78
    Mime-Version: 1.0
    Content-Type: text/plain; charset=utf-8; format=flowed
    Content-Transfer-Encoding: 8bit
    X-Trace: node2.news.atman.pl 1510936109 27805 176.115.86.78 (17 Nov 2017 16:28:29
    GMT)
    X-Complaints-To: u...@a...pl
    NNTP-Posting-Date: Fri, 17 Nov 2017 16:28:29 +0000 (UTC)
    User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:52.0) Gecko/20100101
    Thunderbird/52.4.0
    In-Reply-To: <4...@g...com>
    Content-Language: en-US
    Xref: news-archive.icm.edu.pl pl.comp.programming:211670
    [ ukryj 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.

Podziel się

Poleć ten post znajomemu poleć

Wydrukuj ten post drukuj


Następne wpisy z tego wątku

Najnowsze wątki z tej grupy


Najnowsze wątki

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: