ინდექსი
რა არის LTO?
LTO არის აბრევიატურა ბმულის დროის ოპტიმიზაცია. ეს არის ოპერაცია, როდესაც შემდგენელი აყოვნებს ოპტიმიზაციებს წყაროს ფაილების მიბმის მომენტში, რაც საშუალებას გაძლევთ ნახოთ ყველა ფაილი, რომელიც ქმნის ერთ შემსრულებელს, როგორც ერთი ფაილი და ამ გზით გამოიყენეთ ოპტიმიზაციები უფრო ეფექტური გზით.
რომ ნახოთ სარგებელი და ნაკლოვანებები LTO: ნიშნული Phoronix
რამ უნდა გახსოვდეთ
- ეს არასტაბილურია, ამან შეიძლება გამოიწვიოს პრობლემები ზოგიერთ შეფუთვაში.
- ზოგიერთი პაკეტის შედგენა ვერ მოხერხდება (ამის შესახებ მოგვიანებით გამოსწორების შესახებ).
- გირჩევთ გამოიყენოთ ბმულები ოქრო.
- აშშ ყოველთვის უახლესი ვერსია GCC.
ოქროგარდა ამისა, ხელს უწყობს მოწინავე ფუნქციებს, რაც მას უფრო მიმზიდველს ხდის მის გამოყენებას LTO, ეს უფრო სწრაფია, ვიდრე გნუ ლდ, განსაკუთრებით მაშინ, როდესაც საქმე ეხება დიდ პროგრამებს, სადაც ის შეიძლება გახდეს 5 ჯერ უფრო სწრაფად. მისი გამოსაყენებლად გაუშვით:
binutils-config --linker ld.gold
LTO– ს გამოყენება: რეკომენდებული მეთოდი
გააქტიურების ნაცვლად LTO გლობალურად (რამაც შეიძლება პრობლემები შექმნას) უმჯობესია გავააქტიუროთ ჩვენთვის სასურველ პაკეტებში. ამ გზით, მხოლოდ ის პაკეტები გსურთ ისარგებლოთ LTO ისინი შედგენილია ამ ოპტიმიზაციით, ან რაც თავიდან აიცილებს ნელი კომპილირების დროს იმ პროგრამებში, რომლებიც არ სარგებლობს ამით. ამის მიღწევა შესაძლებელია შემდეგი გზით:
/ Etc / portage / env დირექტორიაში, ჩვენ ვქმნით ფაილს LTO. კონფ და დავამატებთ შემდეგ სტრიქონებს:
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.
ასე რომ, გამოიყენოს LTO პაკეტში, ჩვენ მხოლოდ მისი სახელი (სრული სახელი, www-კლიენტი / firefox, firefox– ის ნაცვლად) უნდა ჩავსვათ ფაილში პაკეტი. env, თან LTO. კონფ შენს მარჯვნივ. ქვემოთ მოცემულია მაგალითი:
app-emulation/wine LTO.conf
www-client/firefox LTO.conf
sys-devel/gcc LTO.conf
kde-base/kdelibs LTO.conf
ახლა ჩვენ უბრალოდ უნდა შევადგინოთ ის პაკეტები, რომელთა გამოყენებაც გვინდა LTO.
LTO– ს გამოყენება გლობალურად (არ არის რეკომენდებული)
განაცხადის ნაცვლად LTO პაკეტი პაკეტში, ასევე შეგვიძლია მისი გამოყენება გლობალურად (რასაც მე ვიყენებ). მისი გამოყენებისათვის შემდეგი ნაბიჯებია:
ჩვენ ვარედაქტირებთ ფაილს /etc/portage/make.conf და ვამატებთ შემდეგს (ისინი ფაილის იგივე ხაზებია LTO. კონფ):
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.
თავის მხრივ, ჩვენ ვქმნით ფაილს /etc/portage/env/no-LTO.conf და ვამატებთ შემდეგ სტრიქონებს:
CFLAGS="${CFLAGS} -fno-lto -fno-use-linker-plugin"
CXXFLAGS="${CXXFLAGS} -fno-lto -fno-use-linker-plugin"
LDFLAGS="${LDFLAGS} -fno-lto -fno-use-linker-plugin"
და ფაილში პაკეტი. env ჩვენ დავაყენებთ პაკეტებს, რომელთა შედგენა ვერ მოხერხდება LTO. მამაკაცი აქ ჩემი პაკეტი. env (გაითვალისწინეთ, რომ მე ვიყენებ ნოლტო.კონფ ნაცვლად არა- LTO.conf).
ასევე უნდა დავამატოთ LTO გამოიყენოს ცვლადი გააკეთე, ეს აუცილებელია, რადგან დეველოპერები Gentoo ისინი ზოგიერთ პაკეტში (ნელ-ნელა) დაამატებენ არასავალდებულო პატჩებს ამ ოპტიმიზაციის გამოყენებისთვის
ამის გაკეთების შემდეგ, მოდით, გავაგრძელოთ სისტემის ყველა პაკეტის ხელახლა შედგენა:
emerge -e @world @system --keep-going &> errores
გამოყენებით-შენარჩუნება, ჩვენ ვეუბნებით Portage შეცდომების უგულებელყოფა, ხოლო &> ყველა შეცდომის გამომუშავება გადამისამართეთ ფაილზე, რომელსაც შეცდომებს უწოდებენ, გამოიყენეთ ეს ფაილი, რომ ნახოთ რომელი პაკეტების შედგენა ვერ მოხერხდება და დაამატეთ ისინი პაკეტი. env.
tail -f /var/log/emerge.log
და ეს ყველაფერი, იმედი მაქვს ეჭვი არ დამიტოვებია, თუ ამაში გაახარებ და სტატიას დავწერ Openmp და / ან Graphite.
3 კომენტარი დატოვე შენი
ჯენტო, მე ...
მოდით გადავდეთ მნიშვნელოვანზე: გრაფიტი!
სულელი და სენსუალური გრაფიტი xD, ეს არანორმალური რამ, რაც შენს xD სისტემას აფეთქებს, მახსოვს, რომ ბოლოს, როდესაც ის გამოვიყენე, საკმარისი იყო 50-ჯერ გამეორებულიყო ამისათვის "KDE- ს გაგზავნა-გაგზავნა <3" ისე, რომ განმეორებით ნომერი 50, გარემო ჯოჯოხეთში ჩაიგდებს ჰაჰაჰაჰა, დიახ, მე მივდიოდი ხელახლა farts xD
მე უკვე ვთქვი, რომ მაინც გამამხნევეს და გრაფიტივით მივიღე. ყოველ შემთხვევაში, Graphite (და ნებისმიერი სხვა ოპტიმიზაცია) საუკეთესოდ მუშაობს LTO– სთან. ასევე, LTO- სგან განსხვავებით, გრაფიტს და OpenMP- ს პრობლემა აქვთ. ყველა პროგრამა არ სარგებლობს მასში და იმაში, ვინც არ სარგებლობს, შესრულება იკლებს, ამიტომ ამ შემთხვევაში უმჯობესია გამოიყენოთ იგი მხოლოდ რამდენიმე პაკეტისთვის.