Waga Plików

0

Z ciekawości!
Dlaczego jeśli napiszę zwykły przeciętny program wyświetlający w konsoli napis Hello World! to waży on prawie jeden megabajt
a jeśli napiszę program wykorzystujący bibliotekę OpenGL wyświetlający kolorowy trójkąt w okienku to waży on tylko kilka kilobajtów?
Czy to przez to że korzystam z CodeBlock'a? A może standardowe procedury C++ (Cout, Cin, If itd...) po prostu ważą tyle ile ważą.

P.S Czy można zastosować na przykład jakieś wstawki assembler'owe czy coś w tym guście a ewentualnie biblioteki dla optymalizacji kodu?

Patryk27
Moderator
  • Rejestracja:ponad 17 lat
  • Ostatnio:ponad rok
  • Lokalizacja:Wrocław
  • Postów:13042
0

Pokaż ten program i wywoływaną linię komend :P


edytowany 1x, ostatnio: Patryk27
0

Zapewne używasz Iostream

Polecam użyć
#include <fstream>
...
printf("Hello World!");

lub
#include <stdio.h>
...
puts("Hello World!)

Plik można zmniejszyć poprzez strip plik.exe

kaczus
  • Rejestracja:około 10 lat
  • Ostatnio:8 dni
  • Lokalizacja:Łódź
  • Postów:1402
0
  1. cin i cout to nie procedury, a obiekty
  2. większość implementacji części biblioteki standardowej c++ zajmuje dużo miejsca
  3. w większości przypadków strip zmniejszy znacznie kod plik wykonywalny.

Ogólnie na prace domowe mam stawki zaporowe. Czasem coś o programowaniu znajdzie się na mojej stronie
edytowany 1x, ostatnio: kaczus
Patryk27
Strip nie rusza kodu wykonywalnego.
kaczus
fuckt - chodzi o plik :) Proszę o wyrozumiałość, właśnie ide pluskac się w morzu - urlop ma swoje prawa :)
Websplash
  • Rejestracja:prawie 10 lat
  • Ostatnio:prawie 9 lat
  • Postów:61
0

Jeśli kompilujesz w debugu binarki zwykle są grube, ponieważ zawierają dodatkowe symbole dla debuggera. Skoro korzystasz z C::B to pewnie i z GCC - możesz ustawić flagę -Os, która może trochę pomóc. Po kompilacji możesz też przepuścić binarkę przez upx, co zwykle pozwala zmniejszyć rozmiar o jakieś 50%.


Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.