Skocz do zawartości

Jak Kompilować By Mieć Szybki Program?


Riksia

Rekomendowane odpowiedzi

Czy są jakieś sposoby kompilacji, by program jak najszybciej się uruchamiał?

 

Skompilowałem najnowszego Amaroka ale prędkość uruchamiania mnie nie zadowala.

 

Niby dodałem do bash profile

export CC=gcc
export CXX=g++
export CFLAGS="-march=i686 -O2
export CXXFLAGS=$CFLAGS

Ale nie wiem czy cmake z tego automatycznie skorzystało czy nie...

Odnośnik do komentarza
Udostępnij na innych stronach

Wątpię byś uzyskał zauważalny przyrost szybkości.

Przede wszystkim należy pamiętać, że Amarok korzysta z gotowych bibliotek KDE i nie tylko (kdelibs, Qt, mysql), więc żeby zoptymalizować pod swoje wymagania, to prawdopodobnie musiałbyś pół KDE przekompilować.

Odnośnik do komentarza
Udostępnij na innych stronach

To takie myślenie w stylu, skompiluję program na szybszym komputerze to otrzymam szybsze binarki ;) Myślisz, że dodanie dwóch flag (poza tym dlaczego nie -O3) coś zmieni? Developerzy Fedory stosują na pewno bardziej wyrafinowane sztuczki, żeby zoptymalizować oprogramowanie.

Amarok jest rozbudowany i ciężki przez to potrzebuje więcej czasu niż inne odtwarzacze. Jeśli Amarok przypadł Ci do gustu to sprawdź Clementine (jakby fork Amaroka), który jest trochę lżejszy. Poza tym możesz ładować potrzebne pliki programu do pamięci już w czasie uruchamiania systemu, czyli technologia readahead.

Ale zdecydowanie najwięcej zyskasz zmieniając sprzęt, a szczególnie wymieniając standardowy dysk twardy na SSD.

Odnośnik do komentarza
Udostępnij na innych stronach

Róznica jest odczuwalna, ale na wolniejszych maszynach. Poza tym, musisz przekompilować cały system żeby różnicę poczuć (Amarok zależy od kdelibs, kdelibs zależy od Qt, Qt zależy od wielu bibliotek systemowych... biblioteki systemowe zależą od kernela). Dla takich ludzi powstało Gentoo właśnie.

Dodatkowo przyjąłeś złe flagi (-;

-march powinno przyjąć coś bardziej pod Twój procesor (konkretny model, i686 to optymalizacja "ogólna" dzięki której program uruchomisz na każdym i686. Czasem -march=athlon64 (dla przykładu) dodaje dodatkowe flagi dla tego konkretnego procesora.

No i jeszcze -O3 o którym już thof powiedział. Trzeba pamiętać też o skutkach. przy -O3 program jest szybszy, ale pobiera więcej RAM-u...

Odnośnik do komentarza
Udostępnij na innych stronach

z ciekawosci - a jakie flagi dla 64-bit?

po odpowiedzi mlodira - jakie flagi sa ustawiane dla paczek fedory (x86_64)?

 

kiedys przymierzalem sie do gentoo (zostawilem sobie nawet partycje), ale ze stage 1/2. tyle, ze na to trzeba czasu. a raczej CCCCZZZZZAAAAASSSSUUUU. i dalem sobie spokój.

 

pamieci teraz tanie(sze), mozna miec duzo. takiego knoppiksa z nosnika da sie podniesc kopiujac go do pamieci - tyle, ze start systemu trwa (za to, jak dla mnie, predkosc podnoszenia sie aplikacji, a i pracy niektórych z nich jest znacznie wieksza; no i napedy/sloty wolne :) ). moze ktos próbowal podobnej zabawy z fedora. dostep do ramu jest nadal szybszy niz do nosników zewnetrznych...

 

jak kompilowac - wydaje sie, ze flagi kompilatora maja zdecydowanie mniejszy wplyw na predkosc wykonywania programu, niz to, jak zostalo napisane zródlo (jakby sie uprzec to i "hello world" mozna zamulic).

 

ja bym poszedl na latwizne i zmienil odtwarzacz.

Odnośnik do komentarza
Udostępnij na innych stronach

z ciekawości - a jakie flagi dla 64-bit?

 

kiedyś przymierzałem się do gentoo (zostawiłem sobie nawet partycję), ale ze stage 1/2. tyle, że na to trzeba czasu. a raczej CCCCZZZZZAAAAASSSSUUUU. i dałem sobie spokój.

 

pamięci teraz tanie(sze), można mieć dużo. takiego knoppiksa z nośnika da się podnieść kopiując go do pamięci - tyle, że start systemu trwa (za to, jak dla mnie, prędkość podnoszenia się aplikacji, a i pracy niektórych z nich jest znacznie większa; no i napędy/sloty wolne :) ). może ktoś próbował podobnej zabawy z fedorą. dostęp do ramu jest nadal szybszy niż do nośników zewnętrznych...

 

jak kompilować - wydaje się, że flagi kompilatora mają zdecydowanie mniejszy wpływ na prędkość wykonywania programu, niż to, jak zostało napisane źródło (jakby się uprzeć to i "hello world" można zamulić).

 

ja bym poszedł na łatwiznę i zmienił odtwarzacz.

Tutaj jest wszystko napisane.

Odnośnik do komentarza
Udostępnij na innych stronach

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się
×
×
  • Dodaj nową pozycję...