abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
eParkomat, startup z ČR, postoupil mezi finalisty evropského akcelerátoru ChallengeUp!
Robot na pivo mu otevřel dveře k opravdovému byznysu
Internet věcí: Propojený svět? Už se to blíží...
dnes 11:44 | Zajímavý projekt

Na Indiegogo byla spuštěna kampaň na podporu herní mini konzole a multimediálního centra RetroEngine Sigma od Doyodo. Předobjednat ji lze již od 49 dolarů. Požadovaná částka 20 000 dolarů byla překonána již 6 krát. Majitelé mini konzole si budou moci zahrát hry pro Atari VCS 2600, Sega Genesis nebo NES. Předinstalováno bude multimediální centrum Kodi.

Ladislav Hagara | Komentářů: 0
dnes 00:10 | Nová verze

Byla vydána verze 4.7 redakčního systému WordPress. Kódové označením Vaughan bylo vybráno na počest americké jazzové zpěvačky Sarah "Sassy" Vaughan. Z novinek lze zmínit například novou výchozí šablonu Twenty Seventeen, náhledy pdf souborů nebo WordPress REST API.

Ladislav Hagara | Komentářů: 0
včera 12:00 | Zajímavý projekt

Projekt Termbox umožňuje vyzkoušet si linuxové distribuce Ubuntu, Debian, Fedora, CentOS a Arch Linux ve webovém prohlížeči. Řešení je postaveno na projektu HyperContainer. Podrobnosti v často kladených dotazech (FAQ). Zdrojové kódy jsou k dispozici na GitHubu [reddit].

Ladislav Hagara | Komentářů: 23
včera 11:00 | Bezpečnostní upozornění

Byly zveřejněny informace o bezpečnostní chybě CVE-2016-8655 v Linuxu zneužitelné k lokální eskalaci práv. Chyba se dostala do linuxového jádra v srpnu 2011. V upstreamu byla opravena minulý týden [Hacker News].

Ladislav Hagara | Komentářů: 2
5.12. 22:00 | Komunita

Přibližně před měsícem bylo oznámeno, že linuxová distribuce SUSE Linux Enterprise Server (SLES) běží nově také Raspberry Pi 3 (dokumentace). Obraz verze 12 SP2 pro Raspberry Pi 3 je ke stažení zdarma. Pro registrované jsou po dobu jednoho roku zdarma také aktualizace. Dnes bylo oznámeno, že pro Raspberry Pi 3 je k dispozici také nové openSUSE Leap 42.2 (zprávička). K dispozici je hned několik obrazů.

Ladislav Hagara | Komentářů: 6
5.12. 06:00 | Zajímavý software

OMG! Ubuntu! představuje emulátor terminálu Hyper (GitHub) postavený na webových technologiích (HTML, CSS a JavaScript). V diskusi k článku je zmíněn podobný emulátor terminálu Black Screen. Hyper i Black Screen používají framework Electron, stejně jako editor Atom nebo vývojové prostředí Visual Studio Code.

Ladislav Hagara | Komentářů: 50
5.12. 06:00 | Zajímavý článek

I letos vychází řada ajťáckých adventních kalendářů. QEMU Advent Calendar 2016 přináší každý den nový obraz disku pro QEMU. Programátoři se mohou potrápit při řešení úloh z kalendáře Advent of Code 2016. Kalendáře Perl Advent Calendar 2016 a Perl 6 Advent Calendar přinášejí každý den zajímavé informace o programovacím jazyce Perl. Stranou nezůstává ani programovací jazyk Go.

Ladislav Hagara | Komentářů: 10
3.12. 16:24 | Nová verze

Byla vydána Mageia 5.1. Jedná se o první opravné vydání verze 5, jež vyšla v červnu loňského roku (zprávička). Uživatelům verze 5 nepřináší opravné vydání nic nového, samozřejmě pokud pravidelně aktualizují. Vydání obsahuje všechny aktualizace za posledního téměř půldruhého roku. Mageia 5.1 obsahuje LibreOffice 4.4.7, Linux 4.4.32, KDE4 4.14.5 nebo GNOME 3.14.3.

Ladislav Hagara | Komentářů: 17
3.12. 13:42 | Pozvánky

V Praze probíhá konference Internet a Technologie 16.2, volné pokračování jarní konference sdružení CZ.NIC. Konferenci lze sledovat online na YouTube. K dispozici je také archiv předchozích konferencí.

Ladislav Hagara | Komentářů: 0
2.12. 22:44 | Komunita

Joinup informuje, že Mnichov používá open source groupware Kolab. V srpnu byl dokončen dvouletý přechod na toto řešení. V provozu je asi 60 000 poštovních schránek. Nejenom Kolabu se věnoval Georg Greve ve své přednášce Open Source: the future for the European institutions (SlideShare) na konferenci DIGITEC 2016, jež proběhla v úterý 29. listopadu v Bruselu. Videozáznam přednášek z hlavního sálu je ke zhlédnutí na Livestreamu.

Ladislav Hagara | Komentářů: 26
Kolik máte dat ve svém domovském adresáři na svém primárním osobním počítači?
 (32%)
 (24%)
 (29%)
 (8%)
 (5%)
 (3%)
Celkem 781 hlasů
 Komentářů: 50, poslední 29.11. 15:50
Rozcestník
Reklama

Dotaz: Nejlepší nastavení GCC

1.9.2005 16:20 Andrej | skóre: 43 | blog: Republic of Mordor | Zürich
Nejlepší nastavení GCC
Přečteno: 156×

Potřeboval bych poradit ohledně nastavení GCC pro kompilaci balíčků a jádra.

Proč nebývá v distribucích defaultně nastavena optimalizace -O3 pro kompilaci balíčků? Napadají mě 3 možné odpovědi, ale netuším, která je správně. :-D

  • Lze ji bez obav nastavit a výsledný kód bude fungovat rychleji.
  • Zrychlení je zanedbatelné a přináší to navíc nějaké (?) nevýhody, kvůli kterým je lepší zůstat u O2.
  • Jde o experimentální věc, binárky můžou být poškozené/nefunkční. Nevyplatí se riskovat.

Co z toho je pravda?

O podobných třech možnostech jsem uvažoval ještě u dvou jiných voleb:

  1. Volba "Use register arguments" v nastavení kernelu. (První tři argumenty funkce se předávají v registrech procesoru, tj. opravdu fofrem.)
  2. Volba gcc zvaná -funit-at-a-time popsaná zde takto: Parse the whole compilation unit before starting to produce code. This allows some extra optimizations to take place but consumes more memory.

Zrovna hodně kompiluju a rád bych proto věděl, co se vyplatí nastavit. Máte s tím někdo bližší zkušenosti? Která ze tří možností je v jednotlivých případech nejblíž pravdě?

ǑǦŹǓǕǙǞǺǨȞȬḔḦḰḾṊṎṸẄẌỖ

Odpovědi

1.9.2005 19:53 Marcel Šebek | skóre: 21
Rozbalit Rozbalit vše Re: Nejlepší nastavení GCC
-funit-at-a-time je defaultně zapnutá u -O2, taže tam není co řešit. Register arguments u kernelu používám a zatím žádné problémy. -O3 bych nastavoval hlavně u kritických aplikací (třeba hry), kde chyba tolik nevadí a rozdíl je poznat.
Real programmers don't comment their code. If it was hard to write, it should be hard to read.
1.9.2005 20:18 Andrej | skóre: 43 | blog: Republic of Mordor | Zürich
Rozbalit Rozbalit vše Re: Nejlepší nastavení GCC

Když je rozdíl i subjektivně poznat, to už je dobrý výsledek, který stojí za to. S tím kernelem to zkusím.

Jenže otázka je, jestli chyba opravdu tolik nevadí. Nerad bych, aby pak práce s mým počítačem byla o nervy a abych se musel pořád jen obávat, kdy to spadne. Jak časté ty chyby můžou být? Je ta volba -O3 oficiální a odzkoušená, nebo je experimentální a nespolehlivá?

ǑǦŹǓǕǙǞǺǨȞȬḔḦḰḾṊṎṸẄẌỖ
1.9.2005 20:56 #Tom
Rozbalit Rozbalit vše Re: Nejlepší nastavení GCC
Já mám skoro celej Linux from scratch zkompilovanej s -O3 -fomit-frame-pointer -march=pentium2 -fPIC mimo jádra a glibc a nepadá mi nic.
2.9.2005 16:46 Andrej | skóre: 43 | blog: Republic of Mordor | Zürich
Rozbalit Rozbalit vše Re: Nejlepší nastavení GCC

Věřím, že například na hodně standardním desktopu všechno stoprocentně funguje. Na speciálnějších konfiguracích je to ale složitější. Já mám Asus M2400N (notebook). Mám na něm Linux už odnepaměti. Funguje mi všechen hardware i suspend.

Dva dny zpátky jsem si zkompiloval kernel 2.6.13 a vstaly mi vlasy hrůzou. Software suspend z www.suspend2.net, který vždy stoprocentně fungoval, najednou začal blbnout, plivat chybové hlášky a zasekávat systém, ještě k tomu náhodně a když to nejmíň potřebuju. Driver pro modem (slmodem 2.6.10) nezkompiluju ani zázrakem a patche nepomáhají.

Zkoušel jsem kompilovat jádro s parametry v registrech a fungovalo na první pohled stejně spolehlivě jako bez nich, dokonce o pár sekund rychleji bootovalo. Chyby při uspání se vyskytovaly s přibližně stejnou pravděpodobností. :-( Takže zatím nechávám parametry v registrech.

Právě výměna jádra mě vedla k dotazu ohledně nastavení gcc - jestli třeba nedělám něco špatně. Možná ale spíš jen předbíhám událostem a měl bych počkat, až budou patche pro kernel, suspend a modem. Přece jen asi není dobré instalovat kernel, který je dva dny po vydání...

Když to ale vezmu z jiného pohledu, kdybych si ho nenainstaloval já společně se spoustou dalších kaskadérů, kdo by ho potom vyzkoušel? :-D

ǑǦŹǓǕǙǞǺǨȞȬḔḦḰḾṊṎṸẄẌỖ
2.9.2005 20:55 unchallenger | skóre: 69 | blog: unchallenger
Rozbalit Rozbalit vše Re: Nejlepší nastavení GCC
Proč kompiluješ s -fPIC programy? (Knihovny se s ním kompilují automaticky, takže na ty to nemá vliv.) Znám pár důvodů, proč se tím zhroší výkon, ale proto to asi neděláš ;-)
3.9.2005 12:47 #Tom
Rozbalit Rozbalit vše Re: Nejlepší nastavení GCC
S -fPIC kompiluju z pohodlnosti všechno, protože knihovny se mi s tím automaticky bohužel nekompilují, někdy dokonce ani tehdy, když to dám do CFLAGS/CPPFLAGS, třeba Qt. Navíc z některých programů rád dělám knihovny - třeba takové xpdf, LPRng nebo Samba. Běh programu se tím snad nezpomalí, řekl bych, že jen jeho spouštění.
3.9.2005 13:54 unchallenger | skóre: 69 | blog: unchallenger
Rozbalit Rozbalit vše Re: Nejlepší nastavení GCC
Právě naopak.

Qt neinstaluji, takže tu nebudu komentovat. Cokoli, co používá libtool, a to je dnes skoro vše, kompiluje knihovny a moduly s -fPIC (nebo -fpic, na intelu je to jedno). A všechny ostatní knihovny, které nepsal úplný diletant, též.

Použití -fPIC (-fpic) výrazně zrychluje spouštění a umožňuje sdílet sekci .text, protože se v ní nemusejí provádět relokace (které vyžadují, aby se do ní zapsalo, což samozřejmě znemožňuje sdílení). U sdílených knihoven je proto jeho nepoužití neomluvitelné -- okamžitě bugreportovat, víš-li o nějaké takové knihovně.

Má ovšem i nevýhody, zejména na intelu komplikuje jiné využití ebx, takže vede k méně efektivnímu kódu. Programy normálně natahují .text na danou adresu virtuální paměti (relokují se jen ne pre-linkované knihovny), takže je sdílena -- a použitím -fPIC proto získáváš jen ty nevýhody.
3.9.2005 15:29 #Tom
Rozbalit Rozbalit vše Re: Nejlepší nastavení GCC
Už si nepamatuju všechny knihovny mají vypnutý PIC. Podle toho, co jsem o PIC četl, tak bez něj je potřeba knihovnu zavádět do paměti pro každý program znova - snad to tak chápu dobře i z vašeho příspěvku. Právě toto mě motivovalo k centrálnímu zapnutí PIC přes proměnné prostředí CFLAGS/CPPFLAGS, ze zdrojáků instaluju skoro všechno a nechce se mi na to myslet při každé kompilaci. Zjistil jsem ale, že sdílených knihovnách je uložena velká část kódu - u mě je to asi 276 MB z 580 MB. Řekl bych, že zapnutím PIC pro všechno zase tolik neztratím.
1.9.2005 20:57 trancelius | skóre: 22
Rozbalit Rozbalit vše Re: Nejlepší nastavení GCC
Jsou borci co jedou i na -O8, tak myslím, že to není až zas tak riskantní. Jinak ten rozdíl je znát spíše mezi -O0, -O1 a -O2, dál to jsou už jen drobnosti a nemusí to vždy přinést ideální poměr cena/výkon (kde cena je snížení stability)
1.9.2005 21:11 #Tom
Rozbalit Rozbalit vše Re: Nejlepší nastavení GCC
-O3 je maximum (pokud vím, v manuálové stránce vyšší není), takže mají jen třetí stupeň, i když napíšou osmičku.
1.9.2005 21:45 trancelius | skóre: 22
Rozbalit Rozbalit vše Re: Nejlepší nastavení GCC
Je to možný... to by pak vysvětlovalo, proč to nejde poznat :D
2.9.2005 16:49 Andrej | skóre: 43 | blog: Republic of Mordor | Zürich
Rozbalit Rozbalit vše Re: Nejlepší nastavení GCC
Nebo je tam něco tak experimentálního, že to ani není v dokumentaci... :-) Pak by totiž šťouralové jako já zkoušeli, co to snese. :-D
ǑǦŹǓǕǙǞǺǨȞȬḔḦḰḾṊṎṸẄẌỖ
Luboš Doležel (Doli) avatar 2.9.2005 20:06 Luboš Doležel (Doli) | skóre: 98 | blog: Doliho blog | Kladensko
Rozbalit Rozbalit vše Re: Nejlepší nastavení GCC
V Makefile/skriptu u Quake 3 jsem někde viděl -O8
1.9.2005 21:00 D-Evil | skóre: 25 | Praha
Rozbalit Rozbalit vše Re: Nejlepší nastavení GCC
Osobně jsem na Gentoo rozdíl mezi -O2 a -O3 poznal jen jeden, delší kompilace v případě O3. Zrychlení jsem pouhym okem nezpozoroval žádný, ale je možný, že moje nastavení pro GCC nebyly úplně optimální, takže to berte spíš jako jednu osobní zkušenost, která nemusí platit všude.
1.9.2005 22:12 snowracer | skóre: 21 | blog: Omniloquent | Praha
Rozbalit Rozbalit vše Re: Nejlepší nastavení GCC
Z mého pohledu se vyplatí používat O2. Binárku jsou téměř stejně rychlé, jako ty, které vylezou z kompilátoru při použití O3, jsou o něco menší a jsou široce používány, na což se jistě myslí i u testování programů.
2.9.2005 21:08 unchallenger | skóre: 69 | blog: unchallenger
Rozbalit Rozbalit vše Re: Nejlepší nastavení GCC
Historicky jsou vyšší úrovně optimalizace u GCC bugovitější a méně otestované, že se s -O3 chybně zkompilovalo jádro, nebyla tak řídká situace. Kompiluje se citelně déle a rozdíl ve výkonu je minimální, někdy klidně i negativní, protože se toho hodně inlinuje, naroste velikost kódu, který se tím už moc nezrychlí, ale zato se ho méně vejde do keší procesoru... Kromě toho je s -O3 v podstatě nemožné debuggování (s -O debugguji normálně, s -O2 se dá jako co, ale -O3 je smrt). Většího zrychlení než s -O2 -> -O3 spíš dosáhneš nějakým špinavým způsobem typu -fomit-frame-pointer, -ffast-math a pod. (žádám Gentooisty, kteří si teď rychle přidají do flagů -ffast-math, aby si pak stěžovali na lampárně, ne mně, že něco počítá blbě).
3.9.2005 08:49 trancelius | skóre: 22
Rozbalit Rozbalit vše Re: Nejlepší nastavení GCC
Myslím, že většina Gentooistů si moc zbrkle nedává do CFLAGS kdejaký (potenciálně nebezpečný) flagy... (mluvím za sebe)
3.9.2005 09:44 snowracer | skóre: 21 | blog: Omniloquent | Praha
Rozbalit Rozbalit vše Re: Nejlepší nastavení GCC
Používám -ffast-math na všech počítačích kromě produkčních serverů. Nestěžuji si :-)

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267   www.czech-server.cz
© 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.