Waga Plików

  • Rejestracja: dni
  • Ostatnio: dni
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
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Wrocław
  • Postów: 13042
0

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

  • Rejestracja: dni
  • Ostatnio: dni
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: dni
  • Ostatnio: dni
  • Lokalizacja: Łódź
  • Postów: 1403
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.
Websplash
  • Rejestracja: dni
  • Ostatnio: dni
  • 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.