eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programmingArchitektura aplikacji - powody wyłączania dll z exeRe: Architektura aplikacji - powody wyłączania dll z exe
  • X-Received: by 10.31.168.133 with SMTP id r127mr402401vke.8.1510910957424; Fri, 17
    Nov 2017 01:29:17 -0800 (PST)
    X-Received: by 10.31.168.133 with SMTP id r127mr402401vke.8.1510910957424; Fri, 17
    Nov 2017 01:29:17 -0800 (PST)
    Path: news-archive.icm.edu.pl!news.icm.edu.pl!news.nask.pl!news.nask.org.pl!news.unit
    0.net!peer02.am4!peer.am4.highwinds-media.com!peer02.iad!feed-me.highwinds-medi
    a.com!news.highwinds-media.com!m31no155159qtf.0!news-out.google.com!v14ni329qtc
    .0!nntp.google.com!m31no155155qtf.0!postnews.google.com!glegroupsg2000goo.googl
    egroups.com!not-for-mail
    Newsgroups: pl.comp.programming
    Date: Fri, 17 Nov 2017 01:29:17 -0800 (PST)
    In-Reply-To: <oukn36$l7m$1@node2.news.atman.pl>
    Complaints-To: g...@g...com
    Injection-Info: glegroupsg2000goo.googlegroups.com; posting-host=194.9.244.38;
    posting-account=bMuEOQoAAACUUr_ghL3RBIi5neBZ5w_S
    NNTP-Posting-Host: 194.9.244.38
    References: <0...@g...com>
    <oukn36$l7m$1@node2.news.atman.pl>
    User-Agent: G2/1.0
    MIME-Version: 1.0
    Message-ID: <4...@g...com>
    Subject: Re: Architektura aplikacji - powody wyłączania dll z exe
    From: Maciej Sobczak <s...@g...com>
    Injection-Date: Fri, 17 Nov 2017 09:29:17 +0000
    Content-Type: text/plain; charset="UTF-8"
    Content-Transfer-Encoding: quoted-printable
    X-Received-Body-CRC: 1017505073
    X-Received-Bytes: 3096
    Xref: news-archive.icm.edu.pl pl.comp.programming:211668
    [ ukryj nagłówki ]

    > Aby nie ładować wszystkiego na raz do pamięci. Przeciętna poważna
    > aplikacja może mieć sumę zajmowanego kodu w dll w granicach kilku GB.

    A ile ta przeciętna poważna aplikacja zajmowałaby gdyby była zlinkowana statycznie?

    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.

    To nie jest taki całkiem nierealny przykład, zwłaszcza jeśli mówimy o bibliotekach
    masowego rażenia, np. GUI albo innych 3rd-party. Przeciętny program używa tylko
    ułamka takich bibliotek i jeśli jest linkowany statycznie, to jego ciężar może być
    znacznie mniejszy, niż suma wszystkich bezpośrednio i pośrednio wciąganych DLLek.
    Czas startu takiego programu też będzie mniejszy, nie tylko z powodu mniejszego
    rozmiaru (czyli mniejszej ilości danych do wczytania), ale też z powodu braku
    konieczności patchowania symboli z dynamicznie wczytanych bibliotek (jeśli taki
    mechanizm w danym systemie występuje).

    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?

    --
    Maciej Sobczak * http://www.inspirel.com

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: