# [OT] Binarki vs. żródła.

## C1REX

Wielu użytkowników Gentoo używa binarki Firefoksa i OO. Często nawet dlatego, że taka binarka szybciej działa.

O ile wiem, to te binarki nie są nawet pod i686 optymalizowane.

Dlaczego więc tak szybko działają te binaria? 

Dlaczego więc Gentoo nie opiera się na binariach, skoro dwa ogromne programy lepiej chodzą w wersji binarnej?

----------

## Raku

 *C1REX wrote:*   

> Wielu użytkowników Gentoo używa binarki Firefoksa i OO. Często nawet dlatego, że taka binarka szybciej działa.
> 
> O ile wiem, to te binarki nie są nawet pod i686 optymalizowane.
> 
> Dlaczego więc tak szybko działają te binaria? 
> ...

 

bo szybkość działania oprogramowania kompilowanego z optymalizacją pod konkretny procesor to zwykle mit.

----------

## nieprosty

 *C1REX wrote:*   

> Dlaczego więc Gentoo nie opiera się na binariach, skoro dwa ogromne programy lepiej chodzą w wersji binarnej?

 

A kto Ci powiedział, że gentoo używa źródeł w celu bycia najszybszą dystrybucją na świecie?

----------

## caruso

To że wszystko jest kompilowane na własnej maszynie może nie przyspiesza działania aplikacji, ale imho sprawia że mniej się wywalają. Ponieważ wszystko jest bardzo dopasowane pod konkretną maszynę.

----------

## nieprosty

 *caruso wrote:*   

> To że wszystko jest kompilowane na własnej maszynie może nie przyspiesza działania aplikacji, ale imho sprawia że mniej się wywalają. Ponieważ wszystko jest bardzo dopasowane pod konkretną maszynę.

 

Jak masz paczki binarne kompilowane pod i586 to na i686 będą działały tak samo dobrze jak na i586.

Jak by było tak jak mówisz to wszystkie dystrybucje działały by najlepiej na maszynach developerów  :Wink: 

Pozdrawiam

----------

## caruso

Nie, mi bardziej chodziło o to że jak coś nowego się instaluje to są kompilowane pod konkretne biblioteki obecne w systemie i przez to mniej się wywalają.

Wszystko jakby pochodzi z jednego źródła. Hmm, nie wiem czy jest wielka różnica miedzy i586 a i686. Ale np są aplikacje które wykorzystują więcej niż 1 rdzeń na procku i tam jest różnica imho. Poza tym jeśli optymalizacja pod konkretny procek nic by nie dawała to by jej nie stosowano chocby w aplikacjach multimedialnych. Chociaz tam jest nie znam dokladnie. Tak sądzę po prostu   :Wink: 

----------

## nieprosty

 *caruso wrote:*   

> Nie, mi bardziej chodziło o to że jak coś nowego się instaluje to są kompilowane pod konkretne biblioteki obecne w systemie i przez to mniej się wywalają.
> 
> Wszystko jakby pochodzi z jednego źródła. Hmm, nie wiem czy jest wielka różnica miedzy i586 a i686. Ale np są aplikacje które wykorzystują więcej niż 1 rdzeń na procku i tam jest różnica imho. Poza tym jeśli optymalizacja pod konkretny procek nic by nie dawała to by jej nie stosowano chocby w aplikacjach multimedialnych. Chociaz tam jest nie znam dokladnie. Tak sądzę po prostu  

 

Nie napisałem że kompilacja pod konkretny procesor nic nie daje. Są aplikacje, w których daje to bardzo dużo ale to są wyjątki. Chodziło mi o to, że przekompilowanie całego systemu pod konkretny procek nie oznacza magicznego wzrostu wydajności o połowę.

Tak naprawdę w dystrybucjach binarnych aplikację też są kompilowane pod odpowiednie biblioteki w systemie (mam na myśli biblioteki zawarte w odpowiednim wydaniu dystrybucji) problemy zazwyczaj zaczynają się gdy chcesz zainstalować jakąś bardzo świeżą aplikację, która wymaga konkretnej biblioteki w wersji x. Wtedy zaczyna się piekiełko zależności. 

Jeżeli chodzi o wielowątkowość na kilku procesorach to zależy już raczej od jądra systemu. Aplikacja sama w sobie musi być zoptymalizowana pod wiele rdzeni i tyle. A na czym ją kompilujesz ma już mniejsze znaczenie  :Smile: 

Pozdrawiam

----------

## C1REX

Nie jestem ekspertem, ale chyba soft musi być napisany pod konkretną architekturę, by wykorzystać jej zalety.

Jakoś sobie nie jestem w stanie wyobrazić, by kompilator sam skutecznie optymalizował kod. Przykład szybszego firefox-bin na i386 niż kompilowany pod athlon64.

----------

## nieprosty

 *C1REX wrote:*   

> Nie jestem ekspertem, ale chyba soft musi być napisany pod konkretną architekturę, by wykorzystać jej zalety.
> 
> Jakoś sobie nie jestem w stanie wyobrazić, by kompilator sam skutecznie optymalizował kod. Przykład szybszego firefox-bin na i386 niż kompilowany pod athlon64.

 

Oczywiście, co nie znaczy  że na tej architekturze na której będzie wykonywany musi zostać skompilowany.

----------

## sebas86

 *C1REX wrote:*   

> Przykład szybszego firefox-bin na i386 niż kompilowany pod athlon64.

 

Tak się składa, że ff-bin i kompilowany nawet na tej samej architekturze działają z różną prędkością - to akurat zły przykład bo daje łatwo się zepsuć przez flagi.

----------

## C1REX

No dokładnie. Naprawdę ciężko skompilować soft lepiej, niż twórcy softu to zrobili. 

Nawet pomimo wsparcia dla znacznie silniejszej architektury mało kto jest w stanie samodzielnie skompilować wydajniejszy soft.

A grzebanie z flagami dla każdego softu oddzielnie to jednak zabawa dla developerów, a nie zwykłego użytkownika.

----------

## wodzik

skompilowanie prostego programu dodajacego jakies tam liczby do asemblera z przelacznikami O1/O2/O3/Os tudziez innymi opcjami do optymalizacji bardzo ladnie pokazuje jaka opcja ile idzie uzyskac. oczywiscie sporo zalezy od typu aplikacji i od instrukcji z jakich korzysta.

----------

## n0rbi666

Z tego co zdążyłem zauważyć, różnica wydajności pomiędzy mozilla-firefox a mozilla-firefox-bin wynika głównie z faktu, że binarka kompilowana była z -Os, a my gentoo kompiluje z -O2. Jak zmieni się O2 na Os (trzeba niestety grzebać w eclass) - różnica w szybkośći działania firefox a firefox-bin jest praktycznie niezauważalna.

A co do szybkości całego systemu - mogę powiedzieć tylko tyle, że kUbuntu 7.04 był zdecydowanie wolniejszy niż gentoo z KDE (na takim samym sprzęcie).

Natomiast większej różnicy w szybkości między Archem a Gentoo nie zauważyłem  :Wink: 

Jedyne, co mnie denerwuje w binarnych dystrybucjach, to zależności : chcę zainstalować tylko głupi program do muzyki, a tu od razu pakuje się gstreamer, esd itp itd  :Wink: 

----------

## unK

 *n0rbi666 wrote:*   

> Z tego co zdążyłem zauważyć, różnica wydajności pomiędzy mozilla-firefox a mozilla-firefox-bin wynika głównie z faktu, że binarka kompilowana była z -Os, a my gentoo kompiluje z -O2. Jak zmieni się O2 na Os (trzeba niestety grzebać w eclass) - różnica w szybkośći działania firefox a firefox-bin jest praktycznie niezauważalna.

 

Bawiłem się niedawno z Firefoxem i flagami i z moich obserwacji wynika, że skompilowany z O2 jest wyraźnie szybszy, niż z Os  :Wink: 

----------

## SlashBeast

Z tego co ja się bawiłem to nie widze róznicy między domyślnymi flagami które fox dobiera sobie a dodaniu -O3 -ftree-vectorize -ftracer -ffast-math -funroll-loops ale może ja po_prostu nie widziałem różnicy.

Arfrever: Ortografia

----------

## C1REX

Apple i Sun podobno twierdzi, że Os to najlepsza optymalizacja. 

Tzn. soft jest mniejszy, a to podobno korzystnie wpływa na działanie całego systemu.

 *unK wrote:*   

> 
> 
> Bawiłem się niedawno z Firefoxem i flagami i z moich obserwacji wynika, że skompilowany z O2 jest wyraźnie szybszy, niż z Os ;)

 

W dokumentacji Gentoo podają firefoksa jako aplikację, która powinna zyskać przy Os.

 *Quote:*   

> -Os
> 
> -Os optimizes for size. -Os enables all -O2 optimizations that do not usually increase code size and performs further optimizations designed to reduce code size.
> 
> -Os is very useful for large applications, like Firefox, as it will reduce load time, memory usage, cache misses, disk usage etc. Code compiled with -Os can be faster than -O2 or -O3 because of this. It's also recommended for older computers with a low amount of RAM, disk space or cache on the CPU. But beware that -Os is not as well tested as -O2 and might trigger compiler bugs. 

 

==============================================================

 *n0rbi666 wrote:*   

> 
> 
> Jedyne, co mnie denerwuje w binarnych dystrybucjach, to zależności : chcę zainstalować tylko głupi program do muzyki, a tu od razu pakuje się gstreamer, esd itp itd ;)

 

Slackware nie ma systemu zależności. Ma to swoje plusy i minusy.

----------

## skiera

Teoretycznie -Os powinno dawać mniejsze binarki, ale w praktyce nie zawsze tak jest, czasem np. z -O2 binarki wychodzą mniejsze.

----------

## SlashBeast

Czas odpalania a prędkość działania to nie to samo, np. co mi da ffmpeg z Os, wstanie zamiast w 0.1s to w 0.08s, ale bedzie mi enkodował 20% wolniej...

Poza_tym gdzieżeś wyczytał, że apple i sun używa Os? Chociaż co do Suna i jego Javy która przy Hello World pewnie je z 50M ramu to Os jest bardzo dobrym pomysłem.

Arfrever: Ortografia (m. in. 's/gdzie żeś/gdzieżeś/')

----------

## C1REX

Niekoniecznie Os ma negatywnie wpływać. Czasami wielkość może też pozytywnie wpłynąć na wydajność.

Tak samo jak O3 może wpłynąć negatywnie.

----------

## SlashBeast

Jakiś przykład?

----------

## C1REX

No podobno firefox na Os lepiej działa.

Kiedyś ktoś robił testy porównawcze Os z O2 na pld i wyszło, że generalnie Os lepiej wypada.

Problem jednak taki, że Os to O2 + kilka lekko agresywnych flag zmniejszających wielkość kodu. Nie zawsze to na zdrowie wyjdzie.

Bezpieczniej jednak, niż O3.

BTW: http://gentoo-wiki.com/CFLAGS_matrix

----------

## SlashBeast

 *C1REX wrote:*   

> No podobno firefox na Os lepiej działa.
> 
> Kiedyś ktoś robił testy porównawcze Os z O2 na pld i wyszło, że generalnie Os lepiej wypada.
> 
> Problem jednak taki, że Os to O2 + kilka lekko agresywnych flag zmniejszających wielkość kodu. Nie zawsze to na zdrowie wyjdzie.
> ...

 

Os to O2 bez kilku flag.

Kiedyś, ktoś, podobno... Nie wydaje mi się by poza rozmiarem kompilatu Os wypadal lepiej, nie ma bata by renderowało strony szybciej czy inne bajery robiło...

----------

## C1REX

Developerzy mozilli o optymalizacji.

http://wiki.mozilla.org/Linux/Compiler_Options

----------

## C1REX

Podobno Mandrake jest dość szybkie. Co prawda jest to ciężka dystrybucja, ale sam mam bardzo dobre wspomnienia.

Jeszcze na Duronie 800 filmy chodziły sporo lepiej, niż na Fedorze, czy Debianie. Ubuntu też mnie rozczarowuje. U kumpla filmy HD wyraźnie tną, kiedy na windzie chodzą normalnie.

----------

## c2p

Na komputerze stacjonarnym, aby płynnie oglądać filmy w HD, do opcji mplayer'a dodaję -lavdopts skiploopfilter=all. Na laptopie HD chodzi płynnie, więc tej opcji nie używam.

Jeśli ktoś używa smplayera, to warto zainteresować się opcją Preferences/Performance/H.264/Skip loop filter. W najnowszej wersji można wybrać pomijanie filtra loop tylko dla filmów powyżej wysokości 720 ("Skip for Video DVD" czy jakoś tak).

----------

## C1REX

Sprawdziłem glxgears na Gentoo(KDE) i Mint (Gnome + Compiz). Dokładnie tyle samo klatek.

Szybkość odpalania bez mierzenia czasu jest bardzo podobna. Jest przewaga Gentoo, ale nie jakaś ogromna. 

Mint jednak używa chyba nieco innych skryptów do startowania. Config kernela z Mint przypomina genkernela. Masa modułów.

Nie czuję jakieś wyraźnej różnicy w szybkości działania obu systemów.

----------

## C1REX

Przetestowałem sobie Archa i byłem pod ogromnym wrażeniem szybkości bootowania systemu.

Szybciej od Ubuntu, czy nawet Gentoo. Nie zauważyłem jednak większej różnicy w szybkości działania samego systemu.

KDE mi lekko szybciej wstaje na Gentoo, bo mam skompilowane bez arts. Różnica jednak nie jest duża i wynika głównie z konfiguracji, a nie optymalizacji.

Gnome na ubuntu wstaje dłużej, ale tam jest sporo więcej do odpalenia przy starcie.

Ja osobiście główne różnice widzę w samej konfiguracji systemów. Proste dystrybucje po instalacji są gołe i ręcznie dodajemy sobie dodatkowe usługi.

W innych dystrybucjach odpala się ogrom usług, gdzie  możemy ewentualnie samemu okroić system. Sytuacja odwrotna, ale w efekcie końcowym można uzyskać IMHO praktycznie taki sam efekt.

Czy są jakiekolwiek dowody na to, że Arch, czy Gentoo działają szybciej, niż Debian, Slackware, czy Red Hat?

(ten sam post rzuciłem na forum Archa)

----------

## nieprosty

 *C1REX wrote:*   

> Czy są jakiekolwiek dowody na to, że Arch, czy Gentoo działają szybciej, niż Debian, Slackware, czy Red Hat?

 

A kto Ci powiedział, że gentoo musi być koniecznie szybsze od debiana (zamiast debiana wstaw sobie dowolną dystrybucję binarną)? 

A tak na poważnie to wątpie żebyś coś takiego znalazł ze względu na niemożliwość dokonania odpowiedniego testu. Nie wieże, że któraś konkretna dystrybucja będzie szybsza w 100% zastosowań.

Poza tym co rozumiesz poprzez gentoo? Goły stage3 z jądreme generowanym automatycznie przez genkernel?

Gentoo jest metadystryubucją czyli końcowy efekt zależy tylko i wyłącznie od najsłabszego ogniwa w układzie (ten między klawiaturą a monitorem  :Wink:  ).

Jeżeli chcesz natomiast porównywać swój super zoptymalizowany system  :Wink:   (nie pije do Ciebie to tylko przykład) to powinieneś go porównać z fanatykiem debiana, który również zoptymalizował swój system jak tylko mógł.

Pozdrawiam Przemek

----------

## Raku

ja kiedyś porównałem szybkość działania debiana (sarge był wówczas gałęzią testing) z gentoo. I przy gentoo wówczas pozostałem. Dla mnie szybkość działania systemu oznacza m.in. czas, jaki muszę czekać przy uruchamianiu aplikacji. Taki krótki test: włączałem konsole pod Debianem - klepsydra w KDE kilka razy się zakręciła i konsole było włączone. Robiłem to samo pod gentoo - klepsydra nie zakręciła się ani raz, bo konsole już było włączone.

Po długim użytkowaniu Gentoo, odkryłem, że praca pod Archlinuksem jest porównywalnie szybka do Gentoo. Przeniosłem się więc na Archa. Nie wiem, jak teraz wygląda sprawa szybkości Debiana, bo używam go wyłącznie od strony serwerowej. Ale uruchamiałem XFCE na Etch jako wirtualnej maszynie Xena (Xen Enterprise) na 2 x opteron 8218 (każdy ma dwa rdzenie 2,6 GHz) i 8 GB RAM i mogę powiedzieć, że system działał jak burza.

----------

## C1REX

Nie zrozumcie mnie źle. Nie używam Gentoo ze względu na szybkość, bo osobiście nie wierzę w odczuwalną różnicę po odpowiedniej konfiguracji. 

Kiedyś co prawda byłem o tej różnicy przekonany, ale nie dziś. Teraz używam Gentoo z zupełnie innych powodów. 

MintLinux chodzi bardzo szybko. Wszelkie aplikacje odpalają się tak samo szybko, jak w Gentoo. A nawet jeśli jest różnica, to ja jej nie czuję.

Na sieci można znaleźć opisy, jak można skrócić czas bootowania Ubuntu nawet do 10 sekund.

Szybkość odpalania aplikacji zależy od szybkości dysku i wielkości programu. Jak ktoś chce szybko wstające aplikacje, to niech sobie skompiluje system z Os zamiast O2. 

O ile będzie w stanie odczuć ten zysk. 

Jeszcze większą różnicę można IMHO uzyskać przy dobrze dobranych flagach USE i odpowiedniej konfiguracji systemu.

----------

## wodzik

 *Raku wrote:*   

> Nie wiem, jak teraz wygląda sprawa szybkości Debiana, bo używam go wyłącznie od strony serwerowej. 

 

[OT]

2 pytania. na jakich serwerach i czy wygenerowales juz nowe klucze   :Twisted Evil: 

[/OT]

----------

## Raku

 *wodzik wrote:*   

>  *Raku wrote:*   Nie wiem, jak teraz wygląda sprawa szybkości Debiana, bo używam go wyłącznie od strony serwerowej.  
> 
> [OT]
> 
> 2 pytania. na jakich serwerach i czy wygenerowales juz nowe klucze  
> ...

 

1. na wszystkich  :Smile: 

2. tak  :Cool: 

----------

## C1REX

Niby Debian jest optymalizowany pod 386, a jakoś nie słychać narzekań, jak się go wrzuca na serwery, czy superkomputery.

----------

## SlashBeast

Debian jest 486, a i386 w nazwach pakietow ma zapewne sugerowac 32bitowy system, tak jak kiedys w kernelu bylo, ze i386 == 32bitowy kernel. Z którąś wersją glibc było chyba tak, że wymagała conajmniej 486.

----------

## Raku

 *C1REX wrote:*   

> Niby Debian jest optymalizowany pod 386,

 

pod 486

 *Quote:*   

> a jakoś nie słychać narzekań, jak się go wrzuca na serwery, czy superkomputery.

 

bo do typowych zastosowań optymalizacja praktycznie nic nie daje.

Zdefiniuj, czym wg Ciebie jest szybkość działania systemu?

Dla mnie jest to szybkość uruchamiania aplikacji + responsywność systemu (klikam w aplikację - uruchamia się bez czekania aż się kawa zaparzy, ruszam myszką i oczekuję, że kursor poruszać się będzie razem ze mną, klikam w nieaktywne okno, i oczekuję, że stanie się aktywne w chwili kliknięcia, itd. itp.). To, czy zakoduję mp3 o 3 sekundy szybciej niż u konkurencji, mnie już nie interesuje - bo i tak zorientuję się, że kodowanie się skończyło z jakimś 10 minutowym opóźnieniem - jak podejdę do komputera.

W przypadku serwerów: tu szybkość działania ma IMO również drugorzędne znaczenie. Wolę żeby działało odrobinę wolniej, ale stabilnie (więc nie eksperymentuję z agresywną optymalizacją - wyrosłem już z tego). Wolę, żeby można było wygodnie i łatwo instalować nowe oprogramowanie - dlatego mój wybór padł na dystrybucję binarną. Eksperymentowałem z solarisem i pkgsrc (taki odpowiednik portage z netBSD). Efekt był taki, że całe dnie spędzałem kompilując, przygotowując pakiety, testując je - a czasu na zarządzanie systemami brakowało.

Jeśli chodzi o optymalizację przez rezygnację z niepotrzebnych zależności: w przypadku desktopa mi te zależności nie przeszkadzają, o ile system spełnia założenia dotyczące szybkości uruchamiania aplikacji i responsywności. W przypadku serwerów - nie wyobrażam sobie optymalizować w ten sposób kilkudziesięciu/kilkuset serwerów - szczególnie, gdy wykorzystuję zróżnicowaną architekturę, a serwery mają różne przeznaczenie. Weźmy za przykład choćby taki kernel: musiałbym przygotowywać kilkanaście różnych smaków kernela, bo mam dość zróżnicowaną platformę sprzętową. Mi się tego po prostu robić nie chce  :Smile: 

----------

## C1REX

Znalazłem benchmark. 

http://new.isc.org/proj/dnsperf/OStest.html

```
Server capacity at breaking point

OS                             Queries/second

Linux Gentoo 2.6.20.7          93,000

Linux Fedora Core 2.6.20.7     87,000

FreeBSD-7-CURRENT 200708       84,000

FreeBSD-6-stable 200708        55,000

FreeBSD 6.2-RELEASE            51,000

Solaris-10 DevelExpr 5/07      50,000

NetBSD-4.0-Beta 200708         42,000

OpenBSD 4.1-snap-20070427      35,000

Windows 2003 Server            22,000

Windows XP Pro64 5.2.3790 SP2  20,000 
```

----------

## canis_lupus

 *Raku wrote:*   

> 
> 
> Dla mnie jest to szybkość uruchamiania aplikacji + responsywność systemu (klikam w aplikację - uruchamia się bez czekania aż się kawa zaparzy, ruszam myszką i oczekuję, że kursor poruszać się będzie razem ze mną, klikam w nieaktywne okno, i oczekuję, że stanie się aktywne w chwili kliknięcia, itd. itp.). To, czy zakoduję mp3 o 3 sekundy szybciej niż u konkurencji, mnie już nie interesuje - bo i tak zorientuję się, że kodowanie się skończyło z jakimś 10 minutowym opóźnieniem - jak podejdę do komputera.
> 
> 

 

No własnie  nie tej responsywności brakuje w linuksie. W windowsie niby obliczenia sa wykonywane wolniej, ale system szybciej reaguje. Nie moge też znaleźć informacji na temat shedulerów w jajku, który do czego jest lepszy...

----------

## Raku

 *canis_lupus wrote:*   

> W windowsie niby obliczenia sa wykonywane wolniej, ale system szybciej reaguje.

 

Poniekąd tak  :Smile: . Też przeżyłem szok, jak reinstalowałem na swoim pececie Windows XP i zauważyłem, jak szybko wszystko na tym pulpicie działa...

Ale później doinstalowałem firewalla, antywirusa, jakieś kodeki, directXy, dodatkowe oprogramowanie, itp, itd... I w efekcie przypomniałem sobie, dlaczego wolę linuksa - tak doładowany Windows przestał być szybszy od mojego linuksa, a ergonomią i wygodą pracy daleko mu do KDE + konsole.

----------

## canis_lupus

u mnie nawet obciązony win chodzi przyjemniej od chudego gentoo.  :Sad: 

----------

## matiit

SApróbuj XFCE   :Smile: 

Przeżyłem ponowny szok

thunar odpala się od razu... jak na windowsie.

Edytor tekstu (mousepad) też (a możliwości trochę większe od notatnika)

przeglądarka... no tego nie ma... chyba ze epiphany... ale ogólnie responsywność XFCE jest super.

Montowanie via hal też jest... wypas.

----------

## C1REX

Bardzo dużo zależy od jajka. Domyślne opcje responsywności są ustawione pod serwer. 

Do tego CFLAGS. U mnie system najszybciej chodzi na tych domyślnych z march=native 02 i fomit frame pointer.

Próbowałem o3 i amd64. W obu przypadkach muli.

----------

## SlashBeast

Pod serwer mówisz? Aha, to pewnie dlatego jajko domyślnie włącza preempt i ustawia go na desktop...  :Razz: 

----------

## C1REX

Wydawało mi się, że jest odwrotnie i musiałem przestawić.

A co do szybkości działania systemu: Windows98SE rządzi. Tzn. tak ze dwa tygodnie, póki nie zacznie robić problemów. ; )

Jak wyszedł XP, to były narzekania, jak dziś na Vistę.

----------

## C1REX

http://www.freesoftwaremagazine.com/columns/tale_of_a_codec_optimisation_doing_things_the_linux_way

Tu koleś przekonuje o wzroście wydajności po optymalizacji pod nową architekturę.

----------

