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í
×
    dnes 12:55 | Nová verze

    CiviCRM (Wikipedie) bylo vydáno v nové verzi 6.14.0. Podrobnosti o nových funkcích a opravách najdete na release stránce. CiviCRM je robustní open-source CRM systém navržený speciálně pro neziskové organizace, spolky a občanské iniciativy. Projekt je napsán v jazyce PHP a licencován pod GNU Affero General Public License (AGPLv3). Český překlad má nyní 45 % přeložených řetězců a přibližuje se milníku 50 %. Potřebujeme vaši pomoc, abychom se dostali dál. Pokud máte chuť přispět překladem nebo korekturou, přidejte se na platformu Transifex.

    jardaIT | Komentářů: 0
    dnes 12:22 | Bezpečnostní upozornění

    Další lokální zranitelností Linuxu je ssh-keysign-pwn. Uživatel si může přečíst obsah souborů, ke kterým má právo ke čtení pouze root, například soubory s SSH klíči nebo /etc/shadow. V upstreamu již opraveno [oss-security mailing list].

    Ladislav Hagara | Komentářů: 0
    včera 17:22 | Komunita

    Singularity (YouTube) je nejnovější otevřený film od Blender Studia. Jedná se o jejich první 4K HDR film.

    Ladislav Hagara | Komentářů: 0
    včera 16:55 | Zajímavý software

    Vyšla hra Život Není Krásný: Poslední Exekuce (Steam, ProtonDB). Kreslená point & click adventura ze staré školy plná černého humoru a nekorektního násilí. Vžijte se do role zpustlého exekutora Vladimíra Brehowského a projděte s ním jeho poslední pracovní den. Hra volně navazuje na sérii Život Není Krásný.

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

    Společnost Red Hat představila Fedora Hummingbird, tj. linuxovou distribuci s nativním kontejnerovým designem určenou pro vývojáře využívající AI agenty.

    Pinhead | Komentářů: 6
    včera 02:22 | Zajímavý software

    Hru The Legend of Zelda: Twilight Princess od společnosti Nintendo si lze nově díky projektu Dusklight (původně Dusk) a reverznímu inženýrství zahrát i na počítačích a mobilních zařízeních. Vyžadována je kopie původní hry (textury, modely, hudba, zvukové efekty, …). Ukázka na YouTube. Projekt byl zahájen v srpnu 2020.

    Ladislav Hagara | Komentářů: 0
    včera 01:11 | Nová verze

    Byla vydána nová major verze 29.0 programovacího jazyka Erlang (Wikipedie) a související platformy OTP (Open Telecom Platform, Wikipedie). Detailní přehled novinek na GitHubu.

    Ladislav Hagara | Komentářů: 0
    13.5. 21:22 | Bezpečnostní upozornění

    Po zranitelnostech Copy Fail a Dirty Frag přichází zranitelnost Fragnesia. Další lokální eskalace práv na Linuxu. Zatím v upstreamu neopravena. Přiřazeno ji bylo CVE-2026-46300.

    Ladislav Hagara | Komentářů: 1
    13.5. 14:00 | Komunita

    Sovereign Tech Agency (Wikipedie) prostřednictvím svého fondu Sovereign Tech Fund podpoří KDE částkou 1 285 200 eur.

    Ladislav Hagara | Komentářů: 11
    13.5. 12:55 | IT novinky

    Google na včerejší akci The Android Show | I/O Edition 2026 (YouTube) představil celou řadu novinek: Gemini Intelligence, notebooky Googlebook, novou generaci Android Auto, …

    Ladislav Hagara | Komentářů: 0
    Které desktopové prostředí na Linuxu používáte?
     (13%)
     (8%)
     (2%)
     (14%)
     (31%)
     (4%)
     (6%)
     (3%)
     (16%)
     (26%)
    Celkem 1632 hlasů
     Komentářů: 30, poslední 3.4. 20:20
    Rozcestník

    Dotaz: Nejlepší nastavení GCC

    1.9.2005 16:20 Andrej | skóre: 51 | blog: Republic of Mordor
    Nejlepší nastavení GCC
    Přečteno: 248×

    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 | blog: c
    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: 51 | blog: Republic of Mordor
    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: 51 | blog: Republic of Mordor
    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: 51 | blog: Republic of Mordor
    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.