AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Das Programm wird zu groß

Ein Thema von NoName1 · begonnen am 25. Aug 2019 · letzter Beitrag vom 2. Sep 2019
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von buddyman83
buddyman83

Registriert seit: 18. Okt 2011
17 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#1

AW: Das Programm wird zu groß

  Alt 26. Aug 2019, 10:11
Wenn es kleiner sein soll, dann lass mal upx da drüber laufen, aber außer das die
Datei danach kleiner ist, ergibt auch das wenigVorteile.
Es ergibt sogar viele Nachteile, denn mit upx komprimierte Programme werden gerne von Virenscannern als Verdächtig angezeigt.
Das führt gerade bei technisch weniger versierten Benutzern/Kunden nur zu unangenehmen Gesprächen.

Meine Programme werden seitdem ich den "Beziers"-Skin von DevExpress als Standard verwende auch 30-40MB groß.
Habe aber bisher noch keine Probleme feststellen können.
  Mit Zitat antworten Zitat
Rolf Frei

Registriert seit: 19. Jun 2006
655 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: Das Programm wird zu groß

  Alt 26. Aug 2019, 12:02
Was ist denn das Prolbem mit der Grösse? Wenn du aus einer Anwendung zwei machen willst, in denen du dann die selben Komponenten nutzt, wirst du danach vermutlich 2 Anwendungen mit 80 MB anstatt nun einer mit 90 MB haben.


Platziere doch mal folgende rooten Zeilen in deinem DPR und schaue was dabei rauskommt. Die Exe müsste dadruch einiges kleiner werden.

program MyApp;

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

uses
Forms,
Windows,
FForm1 in 'FForm1.pas' {Form1};

{$SetPEFlags IMAGE_FILE_RELOCS_STRIPPED}

{$R *.res}

begin
Application.Initialize;
Application.CreateForm(TForm1, Form1);
Application.Run;
end.
  Mit Zitat antworten Zitat
NoName1

Registriert seit: 8. Mär 2018
201 Beiträge
 
Delphi 12 Athens
 
#3

AW: Das Programm wird zu groß

  Alt 28. Aug 2019, 08:53
Rolf Frei,
ich habe beides eingebunden, kompiliert und siehe da das Programm ist kleiner geworden.
Beim Nachschauen was diese {$WEAKLINKRTTI ON} Compiler-Direktive bedeutet bin ich
auf diesen Link in der DP gestoßen: https://www.delphipraxis.net/183645-...klinkrtti.html

Scheinbar birgt das Hinzufügen dieser Compiler-Direktiven auch Risiken mit sich, wenn mit Datenbanken
gearbeitet wird.

Ich werde die EXE-Datei einfach so lassen wie sie ist. Die Vereinsverwaltung ist halt auch sehr umfangreich.
Trotzdem vielen Dank an allen für die Diskussion und die Hilfe.
  Mit Zitat antworten Zitat
Rolf Frei

Registriert seit: 19. Jun 2006
655 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: Das Programm wird zu groß

  Alt 29. Aug 2019, 19:37
Rolf Frei,
ich habe beides eingebunden, kompiliert und siehe da das Programm ist kleiner geworden.
Beim Nachschauen was diese {$WEAKLINKRTTI ON} Compiler-Direktive bedeutet bin ich
auf diesen Link in der DP gestoßen: https://www.delphipraxis.net/183645-...klinkrtti.html

Scheinbar birgt das Hinzufügen dieser Compiler-Direktiven auch Risiken mit sich, wenn mit Datenbanken
gearbeitet wird.

Ich werde die EXE-Datei einfach so lassen wie sie ist. Die Vereinsverwaltung ist halt auch sehr umfangreich.
Trotzdem vielen Dank an allen für die Diskussion und die Hilfe.
Nur so aus Interesse: Wieviel macht es denn aus?

Wenn du kein Databinding nutzt, sondern die meinses erachtens eh besseren und traditionellen TDatasource/TDatasets, sollte das kein Problem sein. Ich nutze diese Flags schon seit langer Zeiet und habe überhaupt kein Problem damit und ich nutze sehr viel DB Sachen, aber eben ohne das langsame RTTI basierende Databinding.
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.961 Beiträge
 
Delphi 12 Athens
 
#5

AW: Das Programm wird zu groß

  Alt 29. Aug 2019, 21:30
Wir benutzen die RTTI an vielen Stellen, das hat aber bei uns nichts mit Datenbanken zu tun.
Sebastian Jänicke
AppCentral
  Mit Zitat antworten Zitat
Rolf Frei

Registriert seit: 19. Jun 2006
655 Beiträge
 
Delphi 11 Alexandria
 
#6

AW: Das Programm wird zu groß

  Alt 30. Aug 2019, 11:12
Das Flag hat eh nur Auswirkung auf neu kompilierten, also eigenen Code. Die ganze Delphi Library wird ja nicht neu kompiliert und daher wird das da auch keine Auswirkung haben. Die Delphi DCU's sind ja so kompiliert, dass RTTI geht. Würde man die ganze Library noch neu kompilieren, würde die Exe Grösse nochmals massiv verkleienert. Mit der Einführung der neuen RTTI sind ja leider auch die exes in der Grösse explodiert und wenn man selber garkein RTTI braucht ist das schon sehr ärgerlich.
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.650 Beiträge
 
Delphi 12 Athens
 
#7

AW: Das Programm wird zu groß

  Alt 30. Aug 2019, 12:29
Die ganze Delphi Library wird ja nicht neu kompiliert und daher wird das da auch keine Auswirkung haben. Die Delphi DCU's sind ja so kompiliert, dass RTTI geht. Würde man die ganze Library noch neu kompilieren, würde die Exe Grösse nochmals massiv verkleienert. Mit der Einführung der neuen RTTI sind ja leider auch die exes in der Grösse explodiert und wenn man selber garkein RTTI braucht ist das schon sehr ärgerlich.
Allerdings wird innerhalb der Delphi-DCUs selbst mittlerweile immer mehr RTTI wirklich benutzt. So ist das gesamte Component-Streaming in System.Classes ohne RTTI gar nicht mehr voll funktionsfähig (und wer will schon auf System.Classes verzichten). Insofern ist es auch keine Option mehr, in den Standard-DCUs das RTTI abzuschalten.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Benutzerbild von Stevie
Stevie

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

AW: Das Programm wird zu groß

  Alt 28. Aug 2019, 12:16
Seit XE6 bringt {$RTTI EXPLICIT METHODS([]) PROPERTIES([]) FIELDS([])} in der dpr genau gar nix mehr - dass es vorher funktioniert hat, war ein Bug, denn der scope der $RTTI Direktive ist nur unit weit (vorher hat er sich global verhalten).

Um ggf eine Idee zu bekommen, was genau in der exe so viel Platz verbraucht, kann man mal die map Datei in MapFileStats öffnen und schauen.
Stefan
“Simplicity, carried to the extreme, becomes elegance.” Jon Franklin

Delphi Sorcery - DSharp - Spring4D - TestInsight

Geändert von Stevie (28. Aug 2019 um 12:20 Uhr)
  Mit Zitat antworten Zitat
samso

Registriert seit: 29. Mär 2009
439 Beiträge
 
#9

AW: Das Programm wird zu groß

  Alt 29. Aug 2019, 06:06
Seit XE6 bringt {$RTTI EXPLICIT METHODS([]) PROPERTIES([]) FIELDS([])} in der dpr genau gar nix mehr - dass es vorher funktioniert hat, war ein Bug, denn der scope der $RTTI Direktive ist nur unit weit (vorher hat er sich global verhalten).
Das scheint aber vom Benutzerprofil abzuhängen. Bei mir (Delphi 10.1) bringt es immerhin eine Einsparung von 10%.
  Mit Zitat antworten Zitat
Benutzerbild von Stevie
Stevie

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

AW: Das Programm wird zu groß

  Alt 29. Aug 2019, 10:29
Seit XE6 bringt {$RTTI EXPLICIT METHODS([]) PROPERTIES([]) FIELDS([])} in der dpr genau gar nix mehr - dass es vorher funktioniert hat, war ein Bug, denn der scope der $RTTI Direktive ist nur unit weit (vorher hat er sich global verhalten).
Das scheint aber vom Benutzerprofil abzuhängen. Bei mir (Delphi 10.1) bringt es immerhin eine Einsparung von 10%.
{$WEAKLINKRTTI ON} wohlmöglich, die $RTTI Direktive allerdings hat nur Auswirkung auf Typen in derselben Unit.
Stefan
“Simplicity, carried to the extreme, becomes elegance.” Jon Franklin

Delphi Sorcery - DSharp - Spring4D - TestInsight
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 22:59 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz