Portál AbcLinuxu, 15. května 2025 13:19

Kompilace Qt pomocí Clang

V blogu Qt Labs se píše o výsledcích kompilace Qt pomocí Clang. V nejnovějších (nevydaných) verzích obou projektů se toto po usilovné práci mnoha lidí konečně povedlo na Linuxu i Macu. Clang sestaví Qt rychleji než GCC, ovšem binárky jsou v průměru větší (hlavně s debug symboly) a podle počátečních testů i pomalejší.

30.10.2010 17:53 | David Watzke | Nová verze


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

Komentáře

Nástroje: Začni sledovat (2) ?Zašle upozornění na váš email při vložení nového komentáře. , Tisk

Vložit další komentář

Limoto avatar 30.10.2010 18:21 Limoto | skóre: 32 | blog: Limotův blog
Rozbalit Rozbalit vše Re: Kompilace Qt pomocí Clang
Odpovědět | Sbalit | Link | Blokovat | Admin

Taky to porovnávají se starým GCC na Linuxu a s historickým na OS X...

David Watzke avatar 30.10.2010 18:26 David Watzke | skóre: 74 | blog: Blog... | Praha
Rozbalit Rozbalit vše Re: Kompilace Qt pomocí Clang
U GCC lze v novějších verzích očekávat zlepšení, takže by to podle mě výsledek stejně moc nezměnilo...
“Being honest may not get you a lot of friends but it’ll always get you the right ones” ―John Lennon
Limoto avatar 30.10.2010 18:29 Limoto | skóre: 32 | blog: Limotův blog
Rozbalit Rozbalit vše Re: Kompilace Qt pomocí Clang

No, třeba ta velikost binárek na OS X by s tím IMHO souviset mohla.

Vykook avatar 30.10.2010 19:30 Vykook | skóre: 23 | blog: Tomas
Rozbalit Rozbalit vše Re: Kompilace Qt pomocí Clang
Mozna to je tim, ze za clangem stoji Apple a pro nej rozhodne linux neni prioritou...
Nejde nám o dobro druhých. Nejde nám o bohatství. Jde o čisté opojení mocí.
30.10.2010 23:10 Ondrej 'SanTiago' Zajicek
Rozbalit Rozbalit vše Re: Kompilace Qt pomocí Clang
Co jsem slysel, tak Apple dodava historickou verzi spolu s OS X, protoze nema rad GPLv3, pod kterou jsou novejsi verze.
31.10.2010 09:53 Boris Dušek | skóre: 22 | blog: everything
Rozbalit Rozbalit vše Re: Kompilace Qt pomocí Clang
Ano, u LLVM reimplementace standardní C++ knihovny je to dokonce explicitně zmíněné ("Why a new...", druhý bod).
vim ~/.emacs
Ondroid avatar 30.10.2010 21:17 Ondroid | skóre: 32 | blog: Hombre
Rozbalit Rozbalit vše Re: Kompilace Qt pomocí Clang
Odpovědět | Sbalit | Link | Blokovat | Admin
IMHO rozdíly v rychlosti kompilace mezi kompilátory jsou docela nepodstatný parametr. Důležitější je kvalita kódu co z toho vyleze.
zoul avatar 31.10.2010 09:13 zoul | skóre: 43 | blog: | Boskovice
Rozbalit Rozbalit vše Re: Kompilace Qt pomocí Clang
Pro zaverecny build mozna, ale ty bys nechtel, aby ti to behem vyvoje prekladalo co nejrychleji?
andree avatar 31.10.2010 20:22 andree | skóre: 39 | blog: andreeeeelog
Rozbalit Rozbalit vše Re: Kompilace Qt pomocí Clang
ked zrusis optimalizacie a mozno dalsie veci, tipol by som ze potom aj gcc bude celkom rychlo kompilovat...
31.10.2010 23:00 vencas | skóre: 32
Rozbalit Rozbalit vše Re: Kompilace Qt pomocí Clang
Bohužel ne vždy; pokud je v kódu hodně šablon, je clang++ několikrát rychlejší (než g++) i bez optimalizací.
1.11.2010 00:59 chrono
Rozbalit Rozbalit vše Re: Kompilace Qt pomocí Clang
Gcc 4.5 je pri veľkom počte šablón rýchlejšie ako staršie verzie.
1.11.2010 08:33 vencas | skóre: 32
Rozbalit Rozbalit vše Re: Kompilace Qt pomocí Clang
To je pravda, ale ne o moc. Sice říkali, že míst O(n^2) to teď je O(n), ale clang++ stejně nedotahuje; nevím ale jestli je to jen šablonami, možná to zpomaluje něco jiného.
1.11.2010 15:24 chrono
Rozbalit Rozbalit vše Re: Kompilace Qt pomocí Clang
Niektoré optimalizácie v gcc potrebujú veľa času a pamäte. Je veľmi pravdepodobné, že pri zakázaní niektorých optimalizácií by gcc kompilovalo výrazne rýchlejšie pri menšej spotrebe pamäte a rýchlosť a veľkosť výsledného programu/knižnice by bola stále porovnateľná s clang. (ale netuším, či je niekde kvalitný popis parametrov pre optimalizáciu aj s tým, ako veľmi ovplyvňujú spotrebu pamäte a záťaž CPU)
Saljack avatar 30.10.2010 21:46 Saljack | skóre: 28 | blog: Saljack | Praha
Rozbalit Rozbalit vše Re: Kompilace Qt pomocí Clang
Odpovědět | Sbalit | Link | Blokovat | Admin
Vysvětlí mi někdo, proč se v poslední době všichni snaží všechno zkompilovat Clang?
Sex, Drugs & Rock´n Roll.
Limoto avatar 30.10.2010 21:53 Limoto | skóre: 32 | blog: Limotův blog
Rozbalit Rozbalit vše Re: Kompilace Qt pomocí Clang

Protože (není) GPL...

David Watzke avatar 30.10.2010 21:55 David Watzke | skóre: 74 | blog: Blog... | Praha
Rozbalit Rozbalit vše Re: Kompilace Qt pomocí Clang
No, on je v některých směrech lepší než GCC, třeba chybový hlášky (jako chyby v kódu). Ale teď jak se na to tak koukám, přijde mi to ještě dost mladý a pekelně zabugovaný. Uvidíme jestli a kdy to překoná GCC ve všech směrech.
“Being honest may not get you a lot of friends but it’ll always get you the right ones” ―John Lennon
zoul avatar 31.10.2010 09:25 zoul | skóre: 43 | blog: | Boskovice
Rozbalit Rozbalit vše Re: Kompilace Qt pomocí Clang
Zas tak pekelne zabugovany byt nemuze, uz ho nejakou dobu pouzivam jako produkcni prekladac Objective-C a Apple ho pouziva v Xcode 4, ktere by mely kazdou chvilku vyjit.
30.10.2010 22:13 vencas | skóre: 32
Rozbalit Rozbalit vše Re: Kompilace Qt pomocí Clang
Protože c++ program na kterém pracuju zkompiluje 4x rychleji (nepřeháním) a spotřebuje na to 2x méně RAM (4 jádra, 12GB RAM, gcc potřebuje 4GB/proces, takže nemůžu využít všechna jádra). Když si chci pustit skutečný výpočet, překompiluju gcc, přitom si vyřídím maily, a pustím.
Bilbo avatar 30.10.2010 22:25 Bilbo | skóre: 29
Rozbalit Rozbalit vše Re: Kompilace Qt pomocí Clang
4 GB/proces? Co to je za zdrojáky? Já osobně jsem se zatím dostal max tak na cca 350 MB (ve chvíli kdy jsem includnul CImg, což je 2 MB header plný templatových funkcí), na "běžných" zdrojácích tak 100 až 200 MB
Big brother is not watching you anymore. Big Brother is telling you how to live...
31.10.2010 10:13 vencas | skóre: 32
Rozbalit Rozbalit vše Re: Kompilace Qt pomocí Clang
https://launchpad.net/yade -- v deklaraci každé třídy desítky atributů přes makra, která vytvářejí kód pro ukrutné šablony schované v boost::python a boost::serialization. Souborů se kompiluje dohromady (kvůli velikosti binárky a rychlosti) třeba 20, takže to opravdu dává necelých 4GB/proces.

Vím že by se to dalo udělat aby to RAM žralo méně (třeba dát implementace boost::serialization a boost::python do .cpp místo .hpp), ale tím by se muselo mnoho dat duplikovat, zatímco záměr byl přesně opačný; ukázka zdrojáku.
1.11.2010 09:54 Ivan
Rozbalit Rozbalit vše Re: Kompilace Qt pomocí Clang
jj, mam podobnou zkousenost s boost::spirit. gcc ma nekdy exponencialni pametovy a casovy naroky kdyz to kompiluje. Takze a = b | c | d; Zkompilovat jde. Ale a = b | c | d | e; uz vyzaduje 4GB RAM na kompilaci.

Ivan
Bedňa avatar 30.10.2010 22:16 Bedňa | skóre: 34 | blog: Žumpa | Horňany
Rozbalit Rozbalit vše Re: Kompilace Qt pomocí Clang
NOGPL a pružný vývoj.
KERNEL ULTRAS video channel >>>
31.10.2010 00:44 JoHnY2
Rozbalit Rozbalit vše Re: Kompilace Qt pomocí Clang
Odpovědět | Sbalit | Link | Blokovat | Admin
Na Linuxu jsou release binarky o 5% vetsi a predbezne o 16% pomalejsi proti GCC 4.4.3, to mi na C++ kompilator ve stavu alfa verze prijde jako malej zazrak.

Založit nové vláknoNahoru


ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.