LTO: mi ez és hogyan kell használni a Gentoo-n

Mi az LTO?

LTO a rövidítése Link idő optimalizálása. Ez egy olyan művelet, amelyben a fordító késlelteti az optimalizálást a forrásfájlok összekapcsolásának pillanatában, lehetővé téve, hogy az egyetlen futtatható fájlt alkotó összes fájlt egyetlen fájlként lássa, és ily módon hatékonyabban alkalmazza az optimalizációkat.

További információért: a wiki GCC.

Az előnyeinek és hátrányainak megismerése LTO: A referenciaértékek Phoronix

Szem előtt tartandó dolgok

  • Ez instabil, problémákat okozhat egyes csomagokban.
  • Néhány csomagot nem sikerül lefordítani (erről később olvashat bővebben).
  • Javasoljuk a linker használatát Arany.
  • USA mindig legújabb verziója GCC.

Arany, amellett, hogy támogatja a fejlett funkciókat, amelyek vonzóbbá teszik a használatát LTO, gyorsabb, mint gnu ld, főleg ha nagy programokról van szó, ahol azok válhatnak Ötször gyorsabb. Használatához futtassa:

binutils-config --linker ld.gold


Az LTO használata: ajánlott módszer

Aktiválás helyett LTO globálisan (ami problémákat okozhat) jobb aktiválni a kívánt csomagokban. Így csak azok a csomagok használhatók, amelyekből részesülni kíván LTO ezzel az optimalizálással vannak összeállítva, vagy amely elkerüli a lassabb fordítási időket olyan programokban, amelyek nem profitálnak belőle. Ez a következő módon érhető el:

Az / etc / portage / env könyvtárban létrehozzuk a fájlt LTO.conf és hozzáadjuk a következő sorokat:

CFLAGS="${CFLAGS} -flto=5" #pon en -flto los hilos  de tu CPU + 1
CXXFLAGS="${CXXFLAGS} -flto=5" #igual que arriba
LDFLAGS="${LDFLAGS} -fuse-linker-plugin" #solo si usas Gold, es mejor.

Szóval, használni LTO egy csomagban csak a nevét kell megadnunk (a teljes nevet, a firefox helyett a www-kliens / firefox helyett) a fájlba. csomag.hu, együtt LTO.conf tőled jobbra. Az alábbiakban egy példa:

app-emulation/wine LTO.conf
www-client/firefox LTO.conf
sys-devel/gcc LTO.conf
kde-base/kdelibs LTO.conf

Most csak össze kell állítanunk azokat a csomagokat, amelyeket használni akarunk LTO.


Az LTO globális használata (nem ajánlott)

Ahelyett, hogy pályázna LTO csomagonként, globálisan is alkalmazhatjuk (ezt használom). Alkalmazásához kövesse a következő lépéseket:

Szerkesztjük az /etc/portage/make.conf fájlt, és hozzáadjuk a következőket (ugyanazok a sorok a fájlból LTO.conf):

CFLAGS="${CFLAGS} -flto=5" #pon en -flto los hilos  de tu CPU + 1
CXXFLAGS="${CXXFLAGS} -flto=5" #igual que arriba
LDFLAGS="${LDFLAGS} -fuse-linker-plugin" #solo si usas Gold, es mejor.

Viszont létrehozzuk az /etc/portage/env/no-LTO.conf fájlt, és hozzáadjuk a következő sorokat:

CFLAGS="${CFLAGS} -fno-lto -fno-use-linker-plugin"
CXXFLAGS="${CXXFLAGS} -fno-lto -fno-use-linker-plugin"
LDFLAGS="${LDFLAGS} -fno-lto -fno-use-linker-plugin"

És az aktában csomag.hu feltesszük azokat a csomagokat, amelyek fordítása nem sikerül LTO. Ő itt az én csomag.hu (vegye figyelembe, hogy használom nolto.conf helyett nem LTO.conf).

Azt is hozzá kell tennünk LTO to USE változó make.conf, erre azért van szükség, mert a Gentoo egyes csomagokban (lassan) hozzáadnak opcionális javításokat ennek az optimalizálásnak a használatához.

Miután ez megtörtént, folytassuk az összes rendszercsomag újrafordítását:

emerge -e @world @system --keep-going &> errores

A –tartás-folytatás használatával elmondjuk fuvarozás figyelmen kívül hagyni a hibákat, miközben &> irányítsa át az összes hiba kimenetét egy hibának nevezett fájlba, használja ezt a fájlt annak megtekintéséhez, hogy mely csomagok nem fordíthatók le, és vegye fel őket a csomag.hu.

A &> megfoszt minket az összes kimenettől, ha meg akarjuk tekinteni a folyamat kimenetét, ezt a parancsot kell használnunk (gyökérként):

tail -f /var/log/emerge.log

És ez minden, remélem, nem hagytam kétségeket, ha felvidítom és cikket írok Openmp és / vagy a Grafit.


Hagyja megjegyzését

E-mail címed nem kerül nyilvánosságra. Kötelező mezők vannak jelölve *

*

*

  1. Az adatokért felelős: Miguel Ángel Gatón
  2. Az adatok célja: A SPAM ellenőrzése, a megjegyzések kezelése.
  3. Legitimáció: Az Ön beleegyezése
  4. Az adatok közlése: Az adatokat csak jogi kötelezettség alapján továbbítjuk harmadik felekkel.
  5. Adattárolás: Az Occentus Networks (EU) által üzemeltetett adatbázis
  6. Jogok: Bármikor korlátozhatja, helyreállíthatja és törölheti adatait.

  1.   MSX dijo

    Gentoo, meh ...
    Térjünk rá a fontos dologra: a grafitra!

    1.    x11tete11x dijo

      A hülye és érzéketlen xx grafit, az a szokatlan dolog, ami elrobbantja az xD rendszeredet, emlékszem, hogy amikor utoljára használtam, elég volt ahhoz, hogy egy 50-szeres iterációt végezzek, amikor «értesít-küldenek KDE-t <3«, így az 50-es iterációban , a környezet pokolian fog kitörni hahahahaha, igen, a re-farts-ra mentem xD

    2.    útjáró dijo

      Már mondtam, hogy még mindig biztattak, és a Graphite egyikét készítettem. De különben is, a Graphite (és bármely más optimalizálás) az LTO-val működik a legjobban. Az LTO-val ellentétben a Graphite és az OpenMP is problémát okoz. Nem minden program profitál belőle, és azokban, amelyek nem profitálnak, a teljesítmény csökken, ezért ebben az esetben jobb, ha csak néhány csomaghoz használja.