AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Delphi Wie bekomme ich die exe kleiner?

Wie bekomme ich die exe kleiner?

Ein Thema von NicoleWagner · begonnen am 27. Jan 2020 · letzter Beitrag vom 8. Feb 2020
Antwort Antwort
Seite 4 von 7   « Erste     234 56     Letzte » 
Benutzerbild von Stevie
Stevie

Registriert seit: 12. Aug 2003
Ort: Soest
3.683 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#31

AW: Wie bekomme ich die exe kleiner?

  Alt 29. Jan 2020, 15:29
Interessant, dass bei diesen "Exe Größe" Diskussionen meist komplett vergessen wird, das selbst die modernsten Prozessoren keinen duzende MB großen Instruction Cache haben. Das heißt, je größer und verteilter der ausgeführte Code, desto eher wird der CPU Durchsatz vom RAM gebremst.

Aber ja, wir reden hier von High Performance und weniger von nem GUI Progrämmchen wo das kaum Auswirkungen hat.
Stefan
“Simplicity, carried to the extreme, becomes elegance.” Jon Franklin

Delphi Sorcery - DSharp - Spring4D - TestInsight
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
35.458 Beiträge
 
Delphi 10.3 Rio
 
#32

AW: Wie bekomme ich die exe kleiner?

  Alt 29. Jan 2020, 16:04
das selbst die modernsten Prozessoren keinen duzende MB großen Instruction Cache haben. Das heißt,
Da bin ich selber mal drauf reingefallen.

Hatte einen Code schön mit Assembler "optimiert", mit dem Ergebnis, dass auf modernen CPUs (die arbeiten teilweise schon den/die nächsten Befehl vor)
alles extrem langsamer lief, im Gegensatz zu dem was der Delphi-Compiler produzierte.
Durch ein paar Jumps wurde dieser Cache und das "umsonst" Vorgearbeitete ständig verworfen und an anderer Stelle wieder neu angefangen.

Ehm, nein ist es nicht.
Doch.
https://de.wikipedia.org/wiki/Addres..._Randomization
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
Delphi-Tage 2005-2014

Geändert von himitsu (29. Jan 2020 um 16:08 Uhr)
  Mit Zitat antworten Zitat
freimatz

Registriert seit: 20. Mai 2010
720 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#33

AW: Wie bekomme ich die exe kleiner?

  Alt 29. Jan 2020, 16:58
Also ich versuche ja meine Programme so zu machen, dass sie den Bedürfnissen der Anwendern möglichst entspricht.
Die Grösse der Exe war in den vielen Jahren bislang nur einmal ein Thema. Und das war auch nicht bei einem Anwender sondern einem Herausgeber der meinte, er könne zu dem Buch nur zwei Disketten beilegen.
Aber jedem sein Hobby wie es ihm gefällt.
  Mit Zitat antworten Zitat
Benutzerbild von Stevie
Stevie

Registriert seit: 12. Aug 2003
Ort: Soest
3.683 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#34

AW: Wie bekomme ich die exe kleiner?

  Alt 30. Jan 2020, 09:03
Hatte einen Code schön mit Assembler "optimiert", mit dem Ergebnis, dass auf modernen CPUs (die arbeiten teilweise schon den/die nächsten Befehl vor)
alles extrem langsamer lief, im Gegensatz zu dem was der Delphi-Compiler produzierte.
Durch ein paar Jumps wurde dieser Cache und das "umsonst" Vorgearbeitete ständig verworfen und an anderer Stelle wieder neu angefangen.
Was du beschreibst, klingt weniger nach einem Problem mit der Instruction Cache Größe sondern nach einem Pipeline Stall, durch z.B. Register Pressure oder Branch Mispredictions.
Kann aber auch durchaus daran liegen, dass besonders oft ausgeführter Code ungünstig über mehrer Cachelines lag.
Stefan
“Simplicity, carried to the extreme, becomes elegance.” Jon Franklin

Delphi Sorcery - DSharp - Spring4D - TestInsight
  Mit Zitat antworten Zitat
Benutzerbild von Codehunter
Codehunter

Registriert seit: 3. Jun 2003
Ort: Thüringen
2.081 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#35

AW: Wie bekomme ich die exe kleiner?

  Alt 3. Feb 2020, 12:36
Ich habe solche Diskussionen mit Kollegen auch schon mehrfach geführt. Weniger bzgl. der Dateigröße von EXEn, aber was die Belegung von Arbeitsspeicher betrifft. Die Problemstellungen mögen bei uns sehr spezifisch sein, das Paradigma denke ich ist allgemeingültig:

Wenn man die Wahl hat zwischen hoch optimiertem Code oder einfach großen Caches im RAM, dann programiere ich bevorzugt RAM-lastig. Ganz einfach deshalb, weil es sehr zeitintensiv auf unserer Seite ist, hoch optimierten Code zu schreiben und zu pflegen. Dagegen ist Arbeitsspeicher zu kaufen und einzubauen inzwischen beinahe die lächerlich kleinste Übung. Was immer machbar ist, wird in irgendwelchen Listen (bevorzugt TDictionary oder Virtual Treeview) geparkt. Dateioperationen nur wenns unbedingt sein muss und dann per TStream angeströmt.

Wobei ich mich hierbei nur auf VCL beziehe. Bei FMX und mobilen Targets sehen die Anforderungen schon ganz anders aus.
Ich mache grundsätzlich keine Screenshots. Schießen auf Bildschirme gibt nämlich hässliche Pixelfehler und schadet der Gesundheit vom Kollegen gegenüber. I und E zu vertauschen hätte den selben negativen Effekt, würde aber eher dem Betriebsklima schaden
  Mit Zitat antworten Zitat
Delphi-Laie

Registriert seit: 25. Nov 2005
1.453 Beiträge
 
Delphi 10.1 Berlin Starter
 
#36

AW: Wie bekomme ich die exe kleiner?

  Alt 3. Feb 2020, 16:01
Um meine Exen kleiner zu bekommen nehme ich mpress.
Reduziert die Größe um mehr als die Hälfte UND : der Große Vorteil gegenüber UPX ist, dass bisher KEIN Virenscanner darauf angeschlagen hat
Komprimiert aber nicht so stark wie UPX, jedenfalls nach meiner Wahrnehmung.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
35.458 Beiträge
 
Delphi 10.3 Rio
 
#37

AW: Wie bekomme ich die exe kleiner?

  Alt 3. Feb 2020, 16:31
G. sagt, dass durch mpress auch schon der Eine oder Andere von seinem Virenscanner genervt wurde (False-Positive)
und mit größerer Verbreitung von mpress würde bestimmt auch öfters mal ein Scanner ansprechen.

Bei UPX raucht es oft, weil viele eine modifizierte Variante nutzen, die das direkte Entpacken verhindern sollten,
oder wo mit schwindligen Einstellungen die Datei noch kleiner gemacht wurde.
Aber hier haben bereits ein paar AntiVirenSoftwaren einen Entpacker für bekannte EXEPacker integriert, damit der Inhalt vor Programmstart geprüft werden kann,
aber wenn das Entpacken aus sonstwelchen Gründen nicht geht, dann wird dem Programm schnell per se etwas Böses unterstellt.

Und bei AntivirenProgrammen ohne Entpacker, aber auch bei denen Mit, landet auch oft sehr gern mal die Signatur des Packers im Virenverzeichnis, weil dessen Signatur natürlich das einzige Markante ist, und da viele böse Entwickler ihre Viren auch gern möglichst klein machen, kommt sowas öfters mit auf die Listen.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
Delphi-Tage 2005-2014

Geändert von himitsu ( 3. Feb 2020 um 16:37 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Codehunter
Codehunter

Registriert seit: 3. Jun 2003
Ort: Thüringen
2.081 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#38

AW: Wie bekomme ich die exe kleiner?

  Alt 4. Feb 2020, 05:55
Lassen sich "geUPXte" EXEn eigentlich signieren? Also nach dem Packen mit UPX meine ich. Würde das einen Unterschied machen in Bezug auf die Scanner?
Ich mache grundsätzlich keine Screenshots. Schießen auf Bildschirme gibt nämlich hässliche Pixelfehler und schadet der Gesundheit vom Kollegen gegenüber. I und E zu vertauschen hätte den selben negativen Effekt, würde aber eher dem Betriebsklima schaden
  Mit Zitat antworten Zitat
Benutzerbild von Dalai
Dalai

Registriert seit: 9. Apr 2006
1.423 Beiträge
 
Delphi 5 Professional
 
#39

AW: Wie bekomme ich die exe kleiner?

  Alt 4. Feb 2020, 13:36
@Codehunter:
Ja, das geht wohl. Die EXE vom Total Commander war in Version 7.0 mit UPX gepackt und außerdem digital signiert, seit Version 7.50 ist sie nur noch signiert.

Grüße
Dalai
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
35.458 Beiträge
 
Delphi 10.3 Rio
 
#40

AW: Wie bekomme ich die exe kleiner?

  Alt 4. Feb 2020, 14:51
Die Signierung bezieht sich ja auf den Dateiinhalt.
Signieren und dann Packen geht nicht gut,
aber auf das gepackte Ergebnis passt es drauf.


Den Dateiinhalt zu signieren, nachdem er geladen wurde, also nachdem dessen Daten umgeschrieben wurden, mit den angepassten Adressen, wäre etwas zu umständlich. (einen Hash über etwas bilden, was sich ständig verändert).
Wenn, die Signierung so arbeiten täte, dann müsste vor dem Packen signiert werden.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
Delphi-Tage 2005-2014
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:33 Uhr.
Powered by vBulletin® Copyright ©2000 - 2020, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2019 by Daniel R. Wolf