-
X-Received: by 10.31.131.145 with SMTP id f139mr973774vkd.11.1511097109390; Sun, 19
Nov 2017 05:11:49 -0800 (PST)
X-Received: by 10.31.131.145 with SMTP id f139mr973774vkd.11.1511097109390; Sun, 19
Nov 2017 05:11:49 -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!peer01.iad!feed-me.highwinds-medi
a.com!news.highwinds-media.com!m31no329441qtf.0!news-out.google.com!t48ni818qtc
.1!nntp.google.com!m31no329439qtf.0!postnews.google.com!glegroupsg2000goo.googl
egroups.com!not-for-mail
Newsgroups: pl.comp.programming
Date: Sun, 19 Nov 2017 05:11:49 -0800 (PST)
In-Reply-To: <0...@g...com>
Complaints-To: g...@g...com
Injection-Info: glegroupsg2000goo.googlegroups.com; posting-host=5.172.255.16;
posting-account=Sb6m8goAAABbWsBL7gouk3bfLsuxwMgN
NNTP-Posting-Host: 5.172.255.16
References: <0...@g...com>
<b...@g...com>
<0...@g...com>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <1...@g...com>
Subject: Re: Architektura aplikacji - powody wyłączania dll z exe
From: fir <p...@g...com>
Injection-Date: Sun, 19 Nov 2017 13:11:49 +0000
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-Received-Body-CRC: 2506085290
X-Received-Bytes: 5555
Xref: news-archive.icm.edu.pl pl.comp.programming:211677
[ ukryj nagłówki ]W dniu niedziela, 19 listopada 2017 14:02:54 UTC+1 użytkownik fir napisał:
> W dniu środa, 15 listopada 2017 15:11:20 UTC+1 użytkownik Maciej Sobczak napisał:
> > > W wielu "dużych", "profesjonalnych" i "popularnych" programach obserwuję
zjawisko wyłączania z exe całego kodu aplikacji.
> > > Moje pytanie brzmi: Dlaczego wyłącza się dll z exe?
> >
> > Zamieszam trochę: od dłuższego czasu jestem zwolennikiem linkowania statycznego
wszystkiego co nie jest base-systemem. Życie mi się uprościło.
> >
> > Dopuszczam DLL-ki tam, gdzie elementy programu mogą być pozyskiwane niezależnie
od głównego programu i ten ficzer jest istotną częścią filozofii używania danego
programu (np. pluginy).
> >
>
> ja odwrotnie, kompilowanie ststyczne to dla mnie za duzo roboty
>
> bo o ile pamietam (nie jestem pewien czy dobrze pamietam ale chyba tak) aby
statyczny linker dzialal 'wybiórczo' nie wystarczy zlinkowac duzego pojedynczego
pliku.o (powiedzmy 5 MB) - jesli uzywamy tylko jednej prostej funkcji z tego obiektu
i tak statyczny linker zlinkuje 5 MB -
> aby dzialal wybiórczo tworca tej
> liby musialby kompilowac ja do wielu skladowych .o i potem pakowac ja w jedną
zbiorczą libe .lib
> (tak mi sie przynajmniej wydaje bo co ciekawe nigdy o tym wiecej nie czytalem i
nigdy jakos specjalnie tego nie uzywalem itd) tak ze to jest ok (dodatkowo np pozwala
kompilowac rozne podkawalki z roznymi opcjami kompilacji) ale wymaga zauwazalnej
ilosci dodatkowej roboty a dla mnie dodatkowa robota jest zwykle denerwujaca (ta
robota moglaby byc
> byc moze mniejsza gdyby toole robily troche wiecej z automatu itp, tak naprawde
mozna tez zauwazyc ze dynamiczne linkowanie
> tez mogloby byc zrobione tak by dzialac wybiórczo acz to by co nieco skomplikowalo
sprawy)
>
> dla mnie linkowanie dllek jest ok
> tyle ze nalezy moze jedynie pamietac by te dllki mialy rozsądne
> rozmiary (rozsądna jak na dzis to dla mnie chyba do 10 MB na jedną)
> oraz by dependencje miedzy nimi byly jak najmniejsze (tj by nie bylo ich duzo i jak
juz sa by mialy w swoim secie jak najmniej dependencji (te dependencje miedzy dllkami
mozna zliczajac zliczajac kreseczki importow na grafie miedzy dllkami, (mowie o
importach calej dllki nie pszczegolnych symboli)
> np jak ktos mialby 10 dllek z ktorych kazda importowalaby kazda inną to w sumie
zdaje sie tych dependencji byloby 90 - za duzo,
> u mnie w moich projektach mam na
> przyklad zaleznosc/import do green.fire.dll ktora z kolei ma importy do 7
systemowych dllek (kernel32.dll gdi32.dll msvcrt.dll psapi.dll user32.dll winmm.dll
ws2_32.dll) sam exe moze tez siegac do niektorych bezposrednio (akurat moj klient
irca siega bezposrednio do kernel32 (i do msvcrt.dll choc to jest zrozumiela) na 12
funkcji (dotyczacych critcal section, tls, exit process, get masage adress itp, i
tego ciagle do konca troche nie lapie szczerze mowiac, czy to gcc wkompilowuje te 12
funkci jako normalne calle w startupie mojego kodu czy tez moze tworzy sobie takie
importy tak troszke jakby na wyrost?) (wiem przynajmniej jedno, jak sam zasembluje
sobie swoim asemblerem swoj plik exe to moge miec eleganckie zero importow mimo ze
program dziala (i pisze na konsole przez msvcrt.printf - hmm - w takim razie to tez
jest dziwne, moze moj exe oszukuje plugin do total commandera bo importy dzialają ale
sie nie pokazują)
wiem tez z doswiadczenia (z moim wlasnym asemblerem ) ze odnoscnika do kernel32.dll
program tak naprawde nie potrzebuje: niektorzy wywolują exit process na koniec
programu ale zwykle ret (aloi nawet program zlozony wylacznie z ret (0xc3)) tez
dziala (i to komicznie bo taki program przy uruchomieniu tylko blinka czy tez ew
wywoluje jakby 'no reaction' ;c tak jak zreszta chyba powinno byc)
Następne wpisy z tego wątku
- 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
- 20.11.17 23:57 fir
- 21.11.17 13:35 Maciej Sobczak
- 21.11.17 17:17 fir
- 21.11.17 22:21 Sebastian Biały
- 22.11.17 02:02 fir
- 22.11.17 07:52 M.M.
- 22.11.17 07:56 M.M.
Najnowsze wątki z tej grupy
- Popr. 14. Nauka i Praca Programisty C++ w III Rzeczy (pospolitej)
- Arch. Prog. Nieuprzywilejowanych w pełnej wer. na nowej s. WWW energokod.pl
- 7. Raport Totaliztyczny: Sprawa Qt Group wer. 424
- TCL - problem z escape ostatniego \ w nawiasach {}
- Nauka i Praca Programisty C++ w III Rzeczy (pospolitej)
- testy-wyd-sort - Podsumowanie
- Tworzenie Programów Nieuprzywilejowanych Opartych Na Wtyczkach
- Do czego nadaje się QDockWidget z bibl. Qt?
- Bibl. Qt jest sztucznie ograniczona - jest nieprzydatna do celów komercyjnych
- Co sciaga kretynow
- AEiC 2024 - Ada-Europe conference - Deadlines Approaching
- Jakie są dobre zasady programowania programów opartych na wtyczkach?
- sprawdzanie słów kluczowych dot. zła
- Re: W czym sie teraz pisze programy??
- Re: (PDF) Surgical Pathology of Non-neoplastic Gastrointestinal Diseases by Lizhi Zhang
Najnowsze wątki
- 2025-02-01 Śmierć mózgu a narządy do pobrania
- 2025-01-31 A niektórym to naprawdę zależy na ekologi w miastach LPG POWRACA ;-)
- 2025-01-31 Lublin => Programista Delphi <=
- 2025-01-31 Łódź => Programista NodeJS <=
- 2025-01-31 Wrocław => Senior SAP Support Consultant (SD) <=
- 2025-01-31 Warszawa => Full Stack web developer (obszar .Net Core, Angular6+) <=
- 2025-01-31 Gdańsk => iOS Developer (Swift experience) <=
- 2025-01-31 Kraków => UX Designer <=
- 2025-01-31 Warszawa => Data Engineer (Tech Leader) <=
- 2025-01-31 Gliwice => Business Development Manager - Dział Sieci i Bezpieczeńst
- 2025-01-31 Gliwice => Business Development Manager - Network and Network Security
- 2025-01-31 Warszawa => Architekt rozwiązań (doświadczenie w obszarze Java, AWS
- 2025-01-31 Warszawa => Full Stack .Net Engineer <=
- 2025-01-31 Warszawa => Programista Full Stack (.Net Core) <=
- 2025-01-31 Gdańsk => Programista Full Stack .Net <=