Kas lähtekoodi koostamine muudab teie programmi kiiremaks?

Ajal otse-eetris, et tähistada Diolinuksi ajaveebi seitset aastat, arutasime jõudlusega seotud probleeme Gentoo koostamisprogrammi kaudu. Kas see on päriselt?

Gentoo Linux teada oma jõudlust lähtekoodi koostamise strateegia põhjal otse kasutatavas masinas. Loogika on järgmine:

Kuna jaotushoidla programmid kompileeritakse masinas, millel on teie protsessorist erinev protsessor (midagi, mida te ei saa päris hästi teada), võib see põhjustada jõudluse kaotuse. Nii et programmide koostamine samal masinal, mis neid kasutab, viib lõpuks parema jõudluseni.

Kuid mõiste on ühes mõttes teoreetiline, teises mitte; enda arendusvahendid. Android need on saadaval lähtekoodina, nii et pärast nende kompileerimist saate riistvarast parimat.

Lihtsalt programmi otse masinas koostamine ei taga riistvara jõudluse paremat kasutamist, eriti kui kasutaja ei tea, kuidas seda teha. Võib-olla läks olukord tegelikult hullemaks kui paremaks. Enne järelduse tegemist ja otsustamist, et lähtekoodi koostamine on selle kontseptsiooni võtmetegur, tuleb arvestada paljude teguritega.

Ma tegin juba oma kanalil videoid, kus teemat vaieldi, kui mulle seda öeldi FreeBSD kasutamine UFS või ZFS on parem jõudlus kui Linux ja ma kirjeldan seda üksikasjalikult. Vaadake videot:

Samamoodi, nagu failisüsteem pole ainus tunnus, mis mõjutab operatsioonisüsteemi jõudluse kasvu, ega kompileeri lähtekoodi otse masinasse. Mõned seda mõjutavad tegurid on:

  • Riistvaraspetsiifiline konfiguratsioon (nt kernel, mis peab olema konfigureeritud õigele protsessoriperekonnale, mitte ĂĽldisele versioonile. Samuti on abiks protsessori mikrokoodi kasutamine;
  • Kohandatud makefile (kogukond Gentoo ja Funtoo läheb tõesti hästi);
  • Plaastri töötab välja kogukond ise Gentoo ja Funtoo (See on ĂĽhiskonna jaoks väga oluline punkt Gentoo/Funtoo (lisades oma plaastrid jõudluse parandamiseks);
  • Kasutage õigeid koostajaid ja teeke;
  • SĂĽsteemifailid
  • init sĂĽsteem (ka kogukond Gentoo luua Openrc just sel eesmärgil. SEE systemd on esinenud paremini kui Openrc).

Kas soovite tõestust, et isegi binaarpaketid suudavad hästi toimida? Jaotus ise Puhas Linux on selle kohta tugev tõend, mis on parandanud Linuxi jõudlust isegi binaarpakettide, sh töötab Steami loomuliku 64-bitise programmi loomiseks.

Mõned teist tulemusi saab kontrollida Phoronixil endal:

Linuxi võrdlusuuring
Linuxi võrdlusuuring
Linuxi võrdlusuuring

Veel kaks suurepärast näidet on levitamine Alpine Linux vastu võtma musl asemel Glibc ja LLVM GCC asemel.

Levitamine Debian mis on parandanud jõudlust ühelt versioonilt teisele, on ka üks edutegureid see LLVM asendades GCC-d ja plaanitakse üle minna Glibcist musl.

Sageli levitamine allikapõhine need ei ole parim tulemuslikkuse saavutamise lahendus; tegelikult võib see olla isegi peavalu, mitte lahendus ja sa pead pettuma. Allikapõhise levitamise kasutuselevõtuks tuleks analüüsida vajadust (millal võtta või mitte), nagu Google seda tegi ChromeOS ja Apple on seda teinud iOS-iga.

Juriidiline arutelu. See selleks, kallistused ja?