Page 1 of 2 1 2 LastLast
Results 1 to 15 of 20

Thread: Tokyo maakt grote exe bestanden

  1. #1

    Tokyo maakt grote exe bestanden

    Ik heb de knoop doorgehakt en ben van Delphi 2009 overgestapt naar Delphi Tokyo 10.2.3.
    Voor zover pikt hij mijn eenvoudige(!) oude programma's goed op, daar geen problemen mee alleen is de omvang 2 tot 3 keer zo groot geworden!
    Heeft iemand een idee welke of hoe ik overtollige bagage kan verwijderen?

  2. #2
    John Kuiper
    Join Date
    Apr 2007
    Location
    Almere
    Posts
    8,747
    Is nogal een drastische stap. Ik heb er eigenlijk niet zo opgelet.
    Je kan niet zoveel. Zoweinig mogelijk (basis) units gebruiken in je uses.

    Dit is de discussie bij Embarcadero
    Delphi is great. Lazarus is more powerfull

  3. #3
    Senior Member
    Join Date
    Aug 2004
    Location
    Rotterdam
    Posts
    151
    Met elke versie neemt de .exe omvang iets toe. Dat is gewoon een feit. Ik heb programma's uit Delphi 7, D2009 en Delphi 10. Telkens ca 2x groter. Gelukkig zijn in die tijd de interne geheugens ook van 256MB naar 4GB gegaan. Dus maak ik mij er niet echt druk over.

  4. #4
    Fornicatorus Formicidae VideoRipper's Avatar
    Join Date
    Mar 2005
    Location
    Vicus Saltus Orientalem
    Posts
    5,708
    Afhankelijk van de Delphi-versies waartussen je vergelijkt, kan het zelfs een tienvoud zijn.

    Enige tijd geleden heb ik een Delphi 7 project van 3MB gecompileerd met XE2 en het resultaat was
    toen ineens 29MB geworden; ik dacht oorspronkelijk dat ik een instelling verkeerd had staan.

    Als je direct vergelijkt tussen Delphi 2/3 en Delphi XE10, dan zijn de verschillen in grootte enorm,
    maak je iedere release door de jaren heen bewust mee, dan groeien je applicaties langzaam aan
    mee en merk je er eigenlijk niet veel van.
    Ga je hierna, na enige tijd, weer terug naar de oude Delphi-versie, dan merk je dat dat niet meer
    gaat omdat je er toch wel een heleboel handige dingen bijgekregen hebt, waarvan je eigenlijk niet
    meer voor kunt stellen dat je ooit zonder gedaan hebt.

    Door de jaren heen zijn er in Delphi o.a.. variant-, interface- en generics-mechanismen bijgekomen,
    waardoor alles allemaal veel zwaarder is geworden, maar je krijgt er wel een boel extra mogelijkheden
    voor terug en dat is ook veel waard, zeker in een commerciële omgeving (des te RAD'er hoe beter).

    Ik maak mij er persoonlijk altijd wel druk om, al is het puur om het ("Rechtvaardigheid"-) gevoel, dus
    als je (voor de hobby) toch iets kleins wilt schrijven (bijvoorbeeld een stub .exe), dan kun je altijd nog
    een oude compiler gebruiken en/of alle klasse en VCL-units niet gebruiken.

    Wellicht kun je ook FPC gebruiken, maar daar kan ik geen antwoord op geven, aangezien ik hier zelf
    nooit echt mee gespeeld heb.
    TMemoryLeak.Create(Nil);

  5. #5
    *+E13818MU01F0F* Norrit's Avatar
    Join Date
    Aug 2001
    Location
    Landgraaf
    Posts
    967
    Het maakt ook nog een wereld van verschil of je in debug of release compileert.
    En laat nu net de standaard op Debug staan...
    Objective reality is a delirium caused by lack of alcohol in blood

  6. #6
    Stijn Sanders develyoy's Avatar
    Join Date
    Jun 2008
    Location
    GentBrugge, Belgi?½
    Posts
    1,046
    Dan heb ik nog niet ontdekt wat er bij mij onder 'Release' fout staat. Als ik build op 'Release' gaat er een heel klein beetje van af, maar de uiteindelijke grootte van de exe is nog altijd even schrikken als je van D7 komt. Wel had ik even terug een projectje dat gewoon een Windows API aanroept, en ook TRegistry gebruikt. Die heb ik met de Reg* calls van windows vervangen, en de exe was weer netjes terug in de buurt van 100KB. Dus als je zoekt en aanpast, dan kán het wel met de nieuwste Delphi compilers, maar vanaf je iets van VCL gebruikt, dan zit inderdaad de volledige VCL er in, en die is echt wel langzaamaan met de vorige versies stevig gegroeid... Maar zoals Knollie zegt, de gemiddeld beschikbare ruimte in geheugen en op schijf is nog een stuk sterker gegroeid!

  7. #7
    mov rax,marcov; push rax marcov's Avatar
    Join Date
    Apr 2004
    Location
    Ehv, Nl
    Posts
    10,357
    Delphi 2009 (herschreven, modernere RTL) en 2010 (Extended RTTI) zijn de grote daders. Je kan met een

    {$RTTI EXPLICIT METHODS([]) PROPERTIES([]) FIELDS([])}

    in elke unit proberen de D2010 RTTI wat in te dammen, maar veel helpt het niet (alle RTL/VCL units hebben dit default aan, hoe meer je gebruikte, hoe meer problemen). Latere versies gebruiken ook steeds meer generics die ook "bulky" zijn.

    Echter: een minimalist vindt altijd dingen om verder te schaven, maar dat is niet echt een productieve bezigheid.

    Zorg wel dat je TD32 uit hebt staan. (wat debuginfo IN de exe stopt. TD32 in oudere Delphi, compiler opties-> linker->debug info in latere) Welke Delphi je ook hebt, dat is een grote, zoniet grootste factor.

    Zie ook hier: https://stackoverflow.com/questions/...519894#4519894

  8. #8
    Sinds we overgestaps zijn naar Seattle en hier en daar wat generics zijn gaan gebruiken is onze executable 5 keer zo groot geworden, van 50MB naar 250MB, terwijl we juist ook een hoop oude code aan het weggooien zijn en het programma zowat 10% aan regels code is geslonken.
    1+1=b

  9. #9
    mov rax,marcov; push rax marcov's Avatar
    Join Date
    Apr 2004
    Location
    Ehv, Nl
    Posts
    10,357
    Het is een van die gevallen die makkelijk in theorie is; B.v. Tobjectlist<een class type> zouden door een enkele binaire instantie afgehandeld kunnen worden.

    Maar lastig is in de praktijk omdat het de hele exe als scope heeft. Link time optimization, aka LTO dus.

    In praktijk wordt er voor elke specializatie een kopie aangemaakt. Dit is niks nieuws overigens, .NET en Java 1.5 hadden hier ook last van, maar dit viel alleen op wanneer je NGENde of GCJde. Of dat nog zo is, weet ik niet, ik volg die talen niet meer.

    Dikke kans dat Embarcadero er niks aangedaan heeft omdat het toch allemaal naar LLVM ging, maar dat is al bijna een decennium vertraagd.

  10. #10
    Wat je altijd kan doen om je VCL te houden en kleinere applicaties te krijgen is KOL framework gebruiken. Hoe dit op windows 10 oogt en werkt is mij onbekend, maar met D7 altijd goede resultaten gehad. Mijn stubs maak ik met D3 - of in asm/c++.

    Ook maak ik als ik een applicatie klein wil houden geen gebruik van VCL maar gebruik ik direct windows API's.. Scheelt enorm in grootte..

  11. #11
    John Kuiper
    Join Date
    Apr 2007
    Location
    Almere
    Posts
    8,747
    Het wiel uitvinden om iets kleins te maken weerhoudt mij om zulke stappen te ondernemen, Reidinga.
    Het GUI framework is nu eenmaal de grootste boosdoener. Het programma moet voldoen aan alle Windows OS'sen met een eigen kernel (weet niet of Delphi programma's op 95/98 werken). Dat neemt veel ballast met zich mee.
    Delphi is great. Lazarus is more powerfull

  12. #12
    John Kuiper
    Join Date
    Apr 2007
    Location
    Almere
    Posts
    8,747
    Quote Originally Posted by marieke
    Ik heb de knoop doorgehakt en ben van Delphi 2009 overgestapt naar Delphi Tokyo 10.2.3.
    Hoe bevalt de overstap?
    Delphi is great. Lazarus is more powerfull

  13. #13
    Even tussendoor - Ik wist niet dat er zoveel mooie en goede reacties waren want ik kreeg geen email notificaties! Daarbij dacht ik ook dat het waarschijnlijk ook niet zo'n interessante vraag was... Ja, kunt wat pakkages uitschakelen maar dat gaat in deze versie niet zo makkelijk als in de andere. Tenminste het is me nog niet helemaal duidelijk wat ik kan missen. Ik ga nu even alle reacties op mijn gemak doorlezen en zal ze later beantwoorden. Bedankt in ieder geval voor jullie antwoorden!

  14. #14
    Quote Originally Posted by jkuiper View Post
    Hoe bevalt de overstap?
    Het ziet er wel gelikter uit natuurlijk - alleen kan ik geen gebruik maken van alle platforms met deze free versie, dat is wel jammer.
    Verder zal het nog even duren voor ik alle nieuwe mogelijkheden heb ontdekt.

  15. #15
    Quote Originally Posted by Marieke View Post
    ... - alleen kan ik geen gebruik maken van alle platforms met deze free versie, dat is wel jammer.
    Weet je zeker dat je de laatste Community Edition geladen hebt (met de juiste Free License)?

    Want in die laatste Community Edition moet je wel voor iOS, Android en mac OS kunnen programmeren.
    Dit was met de oudere "Tokyo Starter Edition" niet mogelijk.

    Embarcadero® Delphi 10.2 Tokyo Community Edition is a great way to get started building high-performance Delphi apps for Windows, mac OS, iOS, and Android.
    https://www.embarcadero.com/products/delphi/starter

Page 1 of 2 1 2 LastLast

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Tags for this Thread

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •