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.
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.
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.
Gentoo, meh ...
Térjünk rá a fontos dologra: a grafitra!
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
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.