Kodsnack 296 - Den snabbaste Clang du kan få
Kodsnack - Podcast tekijän mukaan Kristoffer, Fredrik, Tobias - Tiistaisin
Tobias berättar för Fredrik om optimering. Optimering av kompilering närmare bestämt. Optimering med och av kompilering med LLVM och Clang för att vara exakt. Nu när Tobias lyckats bygga om hela byggkedjan för Plex visade det sig att det fanns saker att förbättra. Som att kompileringstiderna gick upp, vilket ledde till en rejäl undersökning av att bygga kompilatorer på optimala sätt. Du kan inte bara kompilera din kompilator för snabbast möjliga bygge, du kan kompilera kompilatorn för att bygga just ditt bygge så snabbt som möjligt.
För oss vanliga dödliga är de snabba lärdomarna dessa: den LLVM och Clang du laddar ner från llvm.org är inte de snabbaste du kan få, och thin LTO är något du alltid ska slå på när du bygger med Clang.
Sist ett miniämne: är snabbare matte något för din kodbas? Tobias diskuterar kompileringsflaggan fast-math.
Ett stort tack till Cloudnet som sponsrar vår VPS!
Har du kommentarer, frågor eller tips? Vi är @kodsnack, @tobiashieta, @iskrig, @itssotoday och @bjoreman på Twitter, har en sida på Facebook och epostas på [email protected] om du vill skriva längre. Vi läser allt som skickas.
Gillar du Kodsnack får du hemskt gärna recensera oss i iTunes!
Länkar
- LLVM
- Clang
- Link-time optimization
- Profile-guided optimization
- Hur delade bibliotek fungerar
- IR - intermediärrepresentation
- AST - abstrakt syntaxträd
- Webkit kompilerade ibland Javascript med LLVM
- ELF
- Mach
- COFF
- Thin LTO-presentationen
- LLD
- Javas hotspot-optimering
- Cache line
- FFMPEG
- fast-math
- Bygga Clang med PGO
- Stockholm CPP
- Linuxconf AU
Titlar
- Nästa steg är att göra allting bättre
- Den rakt av enklaste kompilationen av Clang
- Binärsnack
- Större än bara en fil i taget
- Gratis snabbare program
- Passa in i cacheminnet
- Hinta om hur saker och ting ska se ut
- Organisera om binären själv
- Sådant som händer på registernivå
- Ett profilbygge av mediaservern
- Vi bygger en sak väldigt ofta
- Inte någonting som sker under runtime
- Hur kommer jag att använda den här kompilatorn?
- Den snabbaste Clang du kan få