Sign in Join
Wiki copytemporary

File size and smartlinking/de: what changed

Revision 1 to 2. Removed lines have a minus sign; added lines have a plus sign.

OldNewLine
1-\
21Dieser Artikel befindet sich in Aufbau wie in Übersetzung. Helfen Sie mit, ihn weiter zu verbessern!\
3-\
4-\
2+
53Dieser Artikel handelt davon, wie Sie die Grösse Ihrer ausführbaren Datei(en) verringern können.\
64== Einleitung == In Free Pascal entfernt die Compilereinstellung "Smart-Linkbar" bzw. "-CX" aus der ausführbaren Datei den nicht verwendeten Code und die nicht verwendeten Variablen.\
7-\
5+
86== Fallstudie 1 in Windows == Diese Studie wurde am 8. Februar 2006 durchgeführt. Da zu diesem Zeitpunkt Lazarus (Version 0.9.12) mit der Möglichkeit zum "smartlinking" kompiliert und freigegeben wurde. Diese Studie beschreibt die Beziehungen zwischen den unterschiedlichen Ergebnissen und den unterschiedlichen Lazarus und Free Pascal-Versionen mit und ohne der Verwedung von smartllinking.\
9-\
7+
108Die untersuchten Bedingungen:
119
1210- Die Grösse der ausführbaren Datei nach der Verwendung von strip
1311- Die Grösse der ausführbaren Datei nach der Verwendung von strip nach und der Verwendung von UPX
1412- Die Zeit, die für das Linken gebraucht wird
1513
16-\
1714Die Zeit, die zum Compilieren gebraucht wird, wird hier nicht berücksichtigt, da diese Zeit bei allen Konfigurationen zu ähnlich ist. Die Zeit, die zum Compilieren gebraucht wird, ist weniger bedeutend als die Zeit, die zum Linken gebraucht wird.\
18-\
15+
1916Die Grösse der ausführbaren Datei (in unserem Beispiel ist dies die Datei magnifier.exe) kann mit dem Befehl strip verringert werden. Beachten Sie, dass der Befehl strip immer von der Kommandozeile ausgeführt wird:
2017
2118``` bash
2219strip --strip-all magnifier.exe
2320```
2421
25-\
2622Das Programm magnifier.exe ist eine virtuelle Lupe für den Desktop. Der Quellcode und die Binaries für dieses Programm sind frei verfügbar und können von folgender Seite heruntergeladen werden:\
2723<http://magnifier.sourceforge.net>\
28-\
24+
2925Die Zeiten zum Linken wurde auf einem Computer mit 3,2 GHz Pentium 4 dual Core Prozessor und einem Intel Motherboard mit 512 MB Arbeitsspeicher (RAM) ermittelt.\
30-\
31-<b>Leistungsbeurteilung</b>\
32-\
26+
27+Leistungsbeurteilung\
28+
3329Das verwendete Betriebssystem ist Windows XP und die verwendeten Lazarus Versionen sind ist 0.9.13 und 0.9.12. Der Vergleich erfolgte mit den folgenden Software-Konfigurationen:
3430
3531- Lazarus 0.9.12 und Free Pascal 2.0.2 in einem Installationspaket. LCL und RTL sind smartlinked. Von nun an 0.9.12 genannt.
3632- Lazarus 0.9.13 als Subversion ab demselben Zeitpunkt heruntergeladen. Free Pascal 2.0.2 wurde separat installiert. Die LCL ist nicht smartlinked. Von nun an 0.9.13 + 2.0.2 genannt.
3733- Lazarus 0.9.13 Snapshot und Free Pascal 2.1, in einem Installationspaket. Die LCL ist nicht smartlinked. Von nun an 0.9.13 + 2.1 genannt.
3834- Lazarus 0.9.13 Snapshot und Free Pascal 2.1, in einem Installationspaket. Die LCL ist smartlinked. Von nun an 0.9.13 + 2,1 + SL genannt.
3935
4036| | 0.9.12 | 0.9.13 + 2.0.2 | 0.9.13 + 2.1 + SL | 0.9.13 + 2.1 |
4137|----|----|----|----|----|
4238| Dateigrösse nach strip (in bytes) | 1,108,480 | 1,587,712 | 1,425,408 | 1,649,152 |
4339| Dateigrösse nach UPX (in bytes) | 318,976 | 438,272 | 388,608 | 454,144 |
4440| Zeit zum Linken | 15 Sekunden | 5 Sekunden | 45 Sekunden | 10 Sekunden |
4541
46-<figure>
47-<img src="OuptutFileSizesComparisonChart.png" title="OuptutFileSizesComparisonChart.png" />
48-<figcaption>OuptutFileSizesComparisonChart.png</figcaption>
49-</figure>
42+![](/wiki-images/a/a1/OuptutFileSizesComparisonChart.png)
5043
51-<b>Abschluss</b>\
52-\
44+Abschluss\
45+
5346Der 0.9.13 Snapshot vom 8. Februar 2006 verfügt über einen instabilen Compiler aus dem 2.1 Zweig, der im Vergleich zu den anderen Versionen die größeren Executables und langsamer Link-Zeit führen kann.\
5447Die 0.9.12-Version hat die beste Dateigröße von allen, mit UPX und ohne UPX. Das zeigt, dass smartlinking die Dateigröße verringern kann. Der Preis dafür ist eine deutlich höhere Zeit beim Linken.\
5548Die 0.9.12-Version ist komplett für smartlinking unter Windows konfiguriert und es ist keine zusätzliche Konfiguration erforderlich. Dies war bei früheren Versionen nicht der Fall.\
56-\
5749
5850## Entfernen von ungenutzten Funktionen einer Klasse
5951
6052Frage: Wenn eine virtuelle Methode einer Klasse im Programm nicht verwendet wird, wird diese dann vom Compiler entfernt?\
6153Antwort: Wenn sie FPC 2.3.1 oder höher verwenden und alle Programmoptimierungen des Compilers verwenden und der Code nicht erreichbar ist, dann ist die Antwort ja.\
62-\
54+
6355Frage: Wie kann der Compiler erkennen, ob eine virtuelle Methode verwendet wird?\
6456Antwort: Wenn Sie z. B. eine Klassenhierarchie TBase-\> TDerived1-\> TDerived2 mit einer virtuellen Methode namens "vmethod" haben und von der es nirgends im Programm einen Aufruf gibt, dann wird diese virtuelle Methode nicht genutzt und wird entfernt.\
65-\
6657
6758## Siehe auch
6859
6960[[Size Matters/de|Size Matters]]
70-
71-\
72-\
7361
7462---
7563*From the Free Pascal wiki, page "File size and smartlinking/de", as it stood on 2014-11-22 after a change by Olaf, out of the wiki's dump of 2024-05-26. Copyright stays with the author who wrote it, according to the old wiki's [[Licensing]] page. If you have concerns about this material, [message the admin](/wiki-contact).*
7664Category: Deutsch

Back to history