LTO ಎಂದರೇನು?
LTO ಇದರ ಸಂಕ್ಷಿಪ್ತ ರೂಪವಾಗಿದೆ ಲಿಂಕ್ ಸಮಯ ಆಪ್ಟಿಮೈಸೇಶನ್. ಇದು ಒಂದು ಕಾರ್ಯಾಚರಣೆಯಾಗಿದ್ದು, ಮೂಲ ಫೈಲ್ಗಳನ್ನು ಲಿಂಕ್ ಮಾಡುವ ಕ್ಷಣದಲ್ಲಿ ಕಂಪೈಲರ್ ಆಪ್ಟಿಮೈಸೇಶನ್ಗಳನ್ನು ವಿಳಂಬಗೊಳಿಸುತ್ತದೆ, ಒಂದೇ ಎಕ್ಸಿಕ್ಯೂಟಬಲ್ ಅನ್ನು ಒಂದೇ ಫೈಲ್ನಂತೆ ಮಾಡುವ ಎಲ್ಲಾ ಫೈಲ್ಗಳನ್ನು ನೋಡಲು ನಿಮಗೆ ಅನುವು ಮಾಡಿಕೊಡುತ್ತದೆ, ಮತ್ತು ಈ ರೀತಿಯಾಗಿ ಆಪ್ಟಿಮೈಸೇಷನ್ಗಳನ್ನು ಹೆಚ್ಚು ಪರಿಣಾಮಕಾರಿ ರೀತಿಯಲ್ಲಿ ಅನ್ವಯಿಸುತ್ತದೆ.
ಇದರ ಪ್ರಯೋಜನಗಳು ಮತ್ತು ನ್ಯೂನತೆಗಳನ್ನು ನೋಡಲು LTO: ನ ಮಾನದಂಡಗಳು Phoronix
ನೆನಪಿನಲ್ಲಿಡಬೇಕಾದ ವಿಷಯಗಳು
- ಇದು ಅಸ್ಥಿರವಾಗಿದೆ, ಇದು ಕೆಲವು ಪ್ಯಾಕೇಜ್ಗಳಲ್ಲಿ ಸಮಸ್ಯೆಗಳನ್ನು ಉಂಟುಮಾಡುತ್ತದೆ.
- ಕೆಲವು ಪ್ಯಾಕೇಜುಗಳು ಕಂಪೈಲ್ ಮಾಡಲು ವಿಫಲವಾಗುತ್ತವೆ (ಇದನ್ನು ನಂತರ ಹೇಗೆ ಸರಿಪಡಿಸುವುದು ಎಂಬುದರ ಕುರಿತು ಇನ್ನಷ್ಟು).
- ಲಿಂಕರ್ ಅನ್ನು ಬಳಸಲು ಶಿಫಾರಸು ಮಾಡಲಾಗಿದೆ ಗೋಲ್ಡ್.
- ಯುಎಸ್ಎ ಯಾವಾಗಲೂ ನ ಇತ್ತೀಚಿನ ಆವೃತ್ತಿ GCC.
ಗೋಲ್ಡ್, ಬಳಸಲು ಹೆಚ್ಚು ಆಕರ್ಷಕವಾಗಿರುವ ಸುಧಾರಿತ ವೈಶಿಷ್ಟ್ಯಗಳನ್ನು ಬೆಂಬಲಿಸುವುದರ ಜೊತೆಗೆ LTO, ಇದು ವೇಗವಾಗಿದೆ ಗ್ನು ಎಲ್.ಡಿ., ವಿಶೇಷವಾಗಿ ದೊಡ್ಡ ಕಾರ್ಯಕ್ರಮಗಳಿಗೆ ಬಂದಾಗ, ಅದು ಆಗಬಹುದು 5 ಪಟ್ಟು ವೇಗವಾಗಿ. ಇದನ್ನು ಬಳಸಲು, ರನ್ ಮಾಡಿ:
binutils-config --linker ld.gold
LTO ಅನ್ನು ಬಳಸುವುದು: ಶಿಫಾರಸು ಮಾಡಿದ ವಿಧಾನ
ಸಕ್ರಿಯಗೊಳಿಸುವ ಬದಲು LTO ಜಾಗತಿಕವಾಗಿ (ಇದು ಸಮಸ್ಯೆಗಳನ್ನು ಉಂಟುಮಾಡಬಹುದು) ನಾವು ಬಯಸುವ ಪ್ಯಾಕೇಜ್ಗಳಲ್ಲಿ ಅದನ್ನು ಸಕ್ರಿಯಗೊಳಿಸುವುದು ಉತ್ತಮ. ಈ ರೀತಿಯಾಗಿ, ನೀವು ಲಾಭ ಪಡೆಯಲು ಬಯಸುವ ಪ್ಯಾಕೇಜ್ಗಳು ಮಾತ್ರ LTO ಅವುಗಳನ್ನು ಈ ಆಪ್ಟಿಮೈಸೇಶನ್ನೊಂದಿಗೆ ಸಂಕಲಿಸಲಾಗುತ್ತದೆ, ಅಥವಾ ಅದರಿಂದ ಪ್ರಯೋಜನ ಪಡೆಯದ ಕಾರ್ಯಕ್ರಮಗಳಲ್ಲಿ ನಿಧಾನವಾಗಿ ಸಂಕಲನ ಸಮಯವನ್ನು ತಪ್ಪಿಸುತ್ತದೆ. ಇದನ್ನು ಈ ಕೆಳಗಿನ ರೀತಿಯಲ್ಲಿ ಸಾಧಿಸಬಹುದು:
/ Etc / portage / env ಡೈರೆಕ್ಟರಿಯಲ್ಲಿ, ನಾವು ಫೈಲ್ ಅನ್ನು ರಚಿಸುತ್ತೇವೆ 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.
ಆದ್ದರಿಂದ, ಬಳಸಲು LTO ಪ್ಯಾಕೇಜ್ನಲ್ಲಿ, ನಾವು ಅದರ ಹೆಸರನ್ನು (ಫೈರ್ಫಾಕ್ಸ್ನ ಬದಲಾಗಿ ಪೂರ್ಣ ಹೆಸರು, www- ಕ್ಲೈಂಟ್ / ಫೈರ್ಫಾಕ್ಸ್) ಫೈಲ್ನಲ್ಲಿ ಇಡಬೇಕು ಪ್ಯಾಕೇಜ್.ಎನ್ವಿ, ಜೊತೆಗೆ LTO.conf ನಿಮ್ಮ ಬಲಕ್ಕೆ. ಕೆಳಗೆ ಒಂದು ಉದಾಹರಣೆ:
app-emulation/wine LTO.conf
www-client/firefox LTO.conf
sys-devel/gcc LTO.conf
kde-base/kdelibs LTO.conf
ಈಗ ನಾವು ಅವರು ಬಳಸಲು ಬಯಸುವ ಪ್ಯಾಕೇಜುಗಳನ್ನು ಕಂಪೈಲ್ ಮಾಡಬೇಕು LTO.
ಜಾಗತಿಕವಾಗಿ ಎಲ್ಟಿಒ ಬಳಸುವುದು (ಶಿಫಾರಸು ಮಾಡಿಲ್ಲ)
ಅರ್ಜಿ ಸಲ್ಲಿಸುವ ಬದಲು LTO ಪ್ಯಾಕೇಜ್ ಮೂಲಕ ಪ್ಯಾಕೇಜ್, ನಾವು ಅದನ್ನು ಜಾಗತಿಕವಾಗಿ ಅನ್ವಯಿಸಬಹುದು (ಇದು ನಾನು ಬಳಸುತ್ತೇನೆ). ಅದನ್ನು ಅನ್ವಯಿಸಲು, ಅನುಸರಿಸಬೇಕಾದ ಹಂತಗಳು:
ನಾವು /etc/portage/make.conf ಫೈಲ್ ಅನ್ನು ಸಂಪಾದಿಸುತ್ತೇವೆ ಮತ್ತು ಈ ಕೆಳಗಿನವುಗಳನ್ನು ಸೇರಿಸುತ್ತೇವೆ (ಅವು ಫೈಲ್ನ ಒಂದೇ ಸಾಲುಗಳು 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.
ಪ್ರತಿಯಾಗಿ, ನಾವು /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"
ಮತ್ತು ಫೈಲ್ನಲ್ಲಿ ಪ್ಯಾಕೇಜ್.ಎನ್ವಿ ಸಂಕಲನ ವಿಫಲವಾದ ಪ್ಯಾಕೇಜುಗಳನ್ನು ನಾವು ಇಡುತ್ತೇವೆ LTO. ಅವನು ಇಲ್ಲಿ ನನ್ನ ಪ್ಯಾಕೇಜ್.ಎನ್ವಿ (ನಾನು ಬಳಸುತ್ತೇನೆ ಎಂಬುದನ್ನು ಗಮನಿಸಿ nolto.conf ಬದಲಿಗೆ ಅಲ್ಲದ LTO.conf).
ನಾವು ಕೂಡ ಸೇರಿಸಬೇಕು LTO ಗೆ USE ವೇರಿಯಬಲ್ make.conf, ಇದು ಅಗತ್ಯ ಏಕೆಂದರೆ ಡೆವಲಪರ್ಗಳು ಜೆಂಟೂ ಅವು ಕೆಲವು ಪ್ಯಾಕೇಜ್ಗಳಲ್ಲಿ ಈ ಆಪ್ಟಿಮೈಸೇಶನ್ ಬಳಕೆಗಾಗಿ ಐಚ್ al ಿಕ ಪ್ಯಾಚ್ಗಳನ್ನು ಸೇರಿಸುತ್ತಿವೆ.
ಇದನ್ನು ಮಾಡಿದ ನಂತರ, ಎಲ್ಲಾ ಸಿಸ್ಟಮ್ ಪ್ಯಾಕೇಜ್ಗಳನ್ನು ಮರು ಕಂಪೈಲ್ ಮಾಡಲು ಮುಂದುವರಿಯೋಣ:
emerge -e @world @system --keep-going &> errores
-ಕೀಪ್-ಹೋಗುವುದನ್ನು ಬಳಸುವ ಮೂಲಕ, ನಾವು ಹೇಳುತ್ತಿದ್ದೇವೆ ಪೋರ್ಟೇಜ್ ದೋಷಗಳನ್ನು ನಿರ್ಲಕ್ಷಿಸಲು &> ಎಲ್ಲಾ ದೋಷಗಳ output ಟ್ಪುಟ್ ಅನ್ನು ದೋಷಗಳು ಎಂಬ ಫೈಲ್ಗೆ ಮರುನಿರ್ದೇಶಿಸಿ, ಯಾವ ಪ್ಯಾಕೇಜುಗಳನ್ನು ಕಂಪೈಲ್ ಮಾಡಲು ವಿಫಲವಾಗಿದೆ ಎಂಬುದನ್ನು ನೋಡಲು ಈ ಫೈಲ್ ಬಳಸಿ ಮತ್ತು ಅವುಗಳನ್ನು ಪಟ್ಟಿಗೆ ಸೇರಿಸಿ ಪ್ಯಾಕೇಜ್.ಎನ್ವಿ.
tail -f /var/log/emerge.log
ಮತ್ತು ಅಷ್ಟೆ, ನಾನು ಯಾವುದೇ ಸಂದೇಹವನ್ನು ಬಿಟ್ಟಿಲ್ಲ ಎಂದು ನಾನು ಭಾವಿಸುತ್ತೇನೆ, ಅದು ನಾನು ಹುರಿದುಂಬಿಸಿ ಲೇಖನ ಬರೆಯುತ್ತೇನೆ ಓಪನ್ ಎಂಪಿ ಮತ್ತು / ಅಥವಾ ಗ್ರ್ಯಾಫೈಟ್.
ಜೆಂಟೂ, ಮೆಹ್ ...
ಪ್ರಮುಖ ವಿಷಯಕ್ಕೆ ಹೋಗೋಣ: ಗ್ರ್ಯಾಫೈಟ್!
ಸ್ಟುಪಿಡ್ ಮತ್ತು ಸೆನ್ಸುವಲ್ ಗ್ರ್ಯಾಫೈಟ್ ಎಕ್ಸ್ಡಿ, ನಿಮ್ಮ ಎಕ್ಸ್ಡಿ ಸಿಸ್ಟಮ್ ಅನ್ನು ಸ್ಫೋಟಿಸುವ ಅಸಾಮಾನ್ಯ ವಿಷಯ, ನಾನು ಅದನ್ನು ಕೊನೆಯ ಬಾರಿಗೆ ಬಳಸಿದ್ದೇನೆ ಎಂದು ನೆನಪಿದೆ, ಅದಕ್ಕಾಗಿ 50 ಬಾರಿ "ನೋಟಿಫೈ-ಸೆಂಡ್ ಕೆಡಿಇ <3" ಅನ್ನು ಪುನರಾವರ್ತಿಸುತ್ತದೆ. ಸಂಖ್ಯೆ 50, ಪರಿಸರವು ನರಕಕ್ಕೆ ಸಿಡಿಯುತ್ತದೆ hahahahaha, ಹೌದು, ನಾನು ಮರು-ಫಾರ್ಟ್ಸ್ xD ಗೆ ಹೋಗುತ್ತಿದ್ದೆ
ನಾನು ಇನ್ನೂ ಪ್ರೋತ್ಸಾಹಿಸಲ್ಪಟ್ಟಿದ್ದೇನೆ ಮತ್ತು ಗ್ರ್ಯಾಫೈಟ್ನಲ್ಲಿ ಒಂದನ್ನು ಮಾಡಿದ್ದೇನೆ ಎಂದು ನಾನು ಈಗಾಗಲೇ ಹೇಳಿದೆ. ಆದರೆ ಹೇಗಾದರೂ, ಗ್ರ್ಯಾಫೈಟ್ (ಮತ್ತು ಯಾವುದೇ ಇತರ ಆಪ್ಟಿಮೈಸೇಶನ್) LTO ನೊಂದಿಗೆ ಉತ್ತಮವಾಗಿ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆ. ಅಲ್ಲದೆ, ಎಲ್ಟಿಒಗಿಂತ ಭಿನ್ನವಾಗಿ, ಗ್ರ್ಯಾಫೈಟ್ ಮತ್ತು ಓಪನ್ಎಂಪಿಗೆ ಸಮಸ್ಯೆ ಇದೆ. ಎಲ್ಲಾ ಪ್ರೋಗ್ರಾಂಗಳು ಅದರಿಂದ ಪ್ರಯೋಜನ ಪಡೆಯುವುದಿಲ್ಲ, ಮತ್ತು ಪ್ರಯೋಜನವಿಲ್ಲದಂತಹವುಗಳಲ್ಲಿ ಕಾರ್ಯಕ್ಷಮತೆ ಕಡಿಮೆಯಾಗುತ್ತದೆ, ಆದ್ದರಿಂದ ಈ ಸಂದರ್ಭದಲ್ಲಿ ಅದನ್ನು ಕೆಲವು ಪ್ಯಾಕೇಜ್ಗಳಿಗೆ ಮಾತ್ರ ಬಳಸುವುದು ಉತ್ತಮ.