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
Benutzerbild von Stevie
Stevie

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

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
 
#2

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
 
#3

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
samso

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

AW: Das Programm wird zu groß

  Alt 29. Aug 2019, 11:23

{$WEAKLINKRTTI ON} wohlmöglich, die $RTTI Direktive allerdings hat nur Auswirkung auf Typen in derselben Unit.
Das ist bei mir nicht so. {$WEAKLINKRTTI ON} hat bei mir keine Auswirkung auf die Programmgröße. Bei {$RTTI EXPLICIT METHODS([]) PROPERTIES([]) FIELDS([])} wird das Programm 10% kleiner (nur Release und nur Win32 getestet).
  Mit Zitat antworten Zitat
Benutzerbild von Stevie
Stevie

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

AW: Das Programm wird zu groß

  Alt 29. Aug 2019, 14:40

{$WEAKLINKRTTI ON} wohlmöglich, die $RTTI Direktive allerdings hat nur Auswirkung auf Typen in derselben Unit.
Das ist bei mir nicht so. {$WEAKLINKRTTI ON} hat bei mir keine Auswirkung auf die Programmgröße. Bei {$RTTI EXPLICIT METHODS([]) PROPERTIES([]) FIELDS([])} wird das Programm 10% kleiner (nur Release und nur Win32 getestet).
Wie bereits gesagt, vielleicht, wenn du es per include oder direkt in die jeweiligen Units packst, nicht aber wenn nur einzig und allein in der dpr ist, außer dort befinden sich auch Klassen, die dann komplett oder teilweise rausfliegen und sich ggf kaskadieren, da dann der Smartlinker seine Arbeit machen kann.
Denn genau dann würde man sich ggf Klassen zerreißen, bei denen RTTI notwendig ist, wenn von anderen Units aus $RTTI ausgeschalten wird. Wenn der Scope dieser Direktive nur unitweit ist, kann man genau kontrollieren, wo man explizit auf RTTI verzichten kann. Alles andere wäre die Rückkehr des in XE6 gefixten Bugs und sehr unratsam, es weiter zu empfehlen/benutzen.
Stefan
“Simplicity, carried to the extreme, becomes elegance.” Jon Franklin

Delphi Sorcery - DSharp - Spring4D - TestInsight

Geändert von Stevie (29. Aug 2019 um 14:43 Uhr)
  Mit Zitat antworten Zitat
samso

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

AW: Das Programm wird zu groß

  Alt 29. Aug 2019, 15:04

{$WEAKLINKRTTI ON} wohlmöglich, die $RTTI Direktive allerdings hat nur Auswirkung auf Typen in derselben Unit.
Stimmt, Du hast recht. Ich nehme alles zurück Es ist der {$WEAKLINKRTTI ON}-Schalter der die 10% bringt. Sorry!

Geändert von TBx (30. Aug 2019 um 07:03 Uhr) Grund: Defekte Quote-Tags entfernt
  Mit Zitat antworten Zitat
Antwort Antwort


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 23:24 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