Dateigröße der EXE-Reduzieren
-
Ovaron123 schrieb:
Aber kann man das nicht anders lösen?
Kauf dir dür 1 € 'nen Rohling, verschiebe einige Daten von HD darauf, du kannst 6000 neue 100k Progs machen.
Bye, TGGC (Denken, und gut ist.)
-
@Headhunter
Danke UPX kenn ich. Nettes Tool. Vor allem kann ich mir vorstellen, das Virenprogramme damit Probleme haben.Kauf dir dür 1 € 'nen Rohling, verschiebe einige Daten von HD darauf, du kannst 6000 neue 100k Progs machen.
Solche Kommentare von Leuten mit 19 Beiträgen kann man ignorieren.
-
dotc schrieb:
Bei mir macht der BCC aus einem kleinen Beispielprogramm (paar Zeilen in C, nur
Konsolen-I/O - das
vom BCC erzeugte .asm hat nur 3 KByte Größe) stattliche 96 KByte executable.
Kann man das nicht auch irgendwie reduzieren, ohne dynamische Libraries ?ja, vorallem sollte man besonders umfangreiche Funktionen wie printf vermeiden.
http://www.fefe.de/dietlibc/diet.pdf (ist teilweise ein bisschen übertrieben, sollte aber einen Einstieg bieten.)
-
Danke UPX kenn ich.
man sollte natürlich bedenken dass alles was gepackt wurde auch wieder entpackt werden muss. Spätestens bei der Ausführung
und das kostet wiederum Rechenzeit.
Es gibt noch mehr packer (die auch gleichzeitig debug/disassemblierschutz bieten) und je nach optionen und nach der Art des Programms kann die Perfomance gehörig in die Knie gehen (ich denke gerade an einige Packer die man so einstellen kann (als paranoider Programmierer) dass die den Code wirklich erst vor der Ausführung Blockweise entpacken)).Am besten ist immer noch sich über die Compileroptionen zu informieren und eventuell den ganzen überflüssigen Kram aus der Linker/Compileroption entfernen.Vor allem kann ich mir vorstellen, das Virenprogramme damit Probleme haben.
Nunja, die haben damit wohl die wenigsten Probleme - denn EXE bleibt EXE auch der Packer muss den PE-Format erhalten.
-
es gibt wetbewerbe worum es geht eine gut aussehende grafik demos zu machen die möglicht kein sein soll, aber echt darüber hin ist es wirklich scheiss egal ob die exe 10 oder 100 kb gross ist, noch darüber hinaus erkauft man sich die verkleinerung mit geschwindigkeit einbussen und notwendigen installern (nur wo die mfc dlls installiert sind leuft das programm)
in c++ gibt es so vieles nützliches zu lernen und du verschendes deine zeit mit sowas,
-
UPX löst vorallem das Problem nicht. Das Programm bleibt ja trotzdem N byte groß. UPX kann man gebrauchen, wenn man wirklich ein begrenztes Speicher-Medium hat (zB. Diskette oder CDROM). Ansonsten ist es schwachsinn das Ding zu benutzen bzw. sogar noch schlimmer.
@Gerard
Programmgröße ist nicht unbedingt unwichtig und die Geschwindigkeit kann sogar beschleunigt werden.
-
Have you checked the memory requirements for your program when its compressed? In my experience, applications that have been compressed by exe packers take anywhere between 30% to 500% (yes, five hundred) more memory at runtime. I don't think the memory tradeoff is worth the small exe size.
Hab ich auch gerade im Netz gefunden.
Hier ist noch eine andere Möglichkeit um EXE Dateien in VC6 ohne Packer zu verkleinern http://www.coldcity.com/code_tinyexes.asp
Könnte man aber auch so machen:
// Make alignments safe for i386 architecture... #pragma comment(linker, "/FILEALIGN:512") #pragma comment(linker, "/ALIGN:4096")
wobei :
Section Alignment:
Alignment (in bytes) of sections in RAM when loaded into memory. Must greater or equal to File Alignment. Default is the page size for the architecture.File Alignment:
Alignment factor (in bytes) used to align the raw data of sections in the image file. The value should be a power of 2 between 512 and 64K inclusive. The default is 512. If the SectionAlignment is less than the architecture�s page size then this must match the SectionAlignment.
-
Ist schon unglaublich, wie die Programmgrößen zugenommen haben in den letzten
Jahren. Das erste Unix lief auf einer Maschine mit 4K Hauptspeicher, die nächste Version hatte Fortran und war in C geschrieben und lief mit 28 K RAM. In den 70ern waren Basic-Interpreter 2 KByte (Integer Basis) oder 4 KByte (mit Floating Point)
groß, in den 80ern gab's noch Schackprogramme, die mit 700 Byte Speicher liefen.
-
Ovaron123 schrieb:
Kauf dir dür 1 € 'nen Rohling, verschiebe einige Daten von HD darauf, du kannst 6000 neue 100k Progs machen.
Solche Kommentare von Leuten mit 19 Beiträgen kann man ignorieren.
hrhr böser fehler
@topic:
die größe der exe hängt hauptsächlich mit den benutzten headern zusammen, benutzt du <iostream>, linkt dir der compiler normalerweise automatisch die ganze std-lib dazu, dass die borland exe so klein ist liegt daran,dass dein programm die std libs nicht dazu gelinkt hat, und somit unter umständen auf fremd pcs nichtmal startet.
-
Ovaron123 schrieb:
@Headhunter
Danke UPX kenn ich. Nettes Tool. Vor allem kann ich mir vorstellen, das Virenprogramme damit Probleme haben.Kauf dir dür 1 € 'nen Rohling, verschiebe einige Daten von HD darauf, du kannst 6000 neue 100k Progs machen.
Solche Kommentare von Leuten mit 19 Beiträgen kann man ignorieren.
Man ist aber nicht dazu verplichtet.
Bye, TGGC (Denken, und gut ist.)