LLVM lld ಅಭಿವೃದ್ಧಿಪಡಿಸಿದ ಮೋಲ್ಡ್ ಬಿಲ್ಡರ್‌ನ ಮೊದಲ ಸ್ಥಿರ ಬಿಡುಗಡೆ

LLVM lld ಲಿಂಕರ್ ಮತ್ತು chibicc ಕಂಪೈಲರ್‌ನ ಲೇಖಕ Rui Ueyama, ಹೊಸ ಉನ್ನತ-ಕಾರ್ಯಕ್ಷಮತೆಯ ಮೋಲ್ಡ್ ಲಿಂಕರ್‌ನ ಮೊದಲ ಸ್ಥಿರ ಬಿಡುಗಡೆಯನ್ನು ಪ್ರಸ್ತುತಪಡಿಸಿದರು, ಇದು ಆಬ್ಜೆಕ್ಟ್ ಫೈಲ್‌ಗಳನ್ನು ಲಿಂಕ್ ಮಾಡುವ ವೇಗದಲ್ಲಿ GNU ಗೋಲ್ಡ್ ಮತ್ತು LLVM lld ಲಿಂಕರ್‌ಗಳಿಗಿಂತ ಗಮನಾರ್ಹವಾಗಿ ವೇಗವಾಗಿದೆ. ಯೋಜನೆಯು ಉತ್ಪಾದನೆಯ ಅನುಷ್ಠಾನಕ್ಕೆ ಸಿದ್ಧವಾಗಿದೆ ಎಂದು ಪರಿಗಣಿಸಲಾಗಿದೆ ಮತ್ತು ಲಿನಕ್ಸ್ ಸಿಸ್ಟಮ್‌ಗಳಲ್ಲಿ GNU ಲಿಂಕರ್‌ಗೆ ವೇಗವಾದ, ಪಾರದರ್ಶಕ ಬದಲಿಯಾಗಿ ಬಳಸಬಹುದು. ಮುಂದಿನ ಪ್ರಮುಖ ಬಿಡುಗಡೆಯ ಯೋಜನೆಗಳು ಮ್ಯಾಕೋಸ್ ಪ್ಲಾಟ್‌ಫಾರ್ಮ್‌ಗೆ ಬೆಂಬಲವನ್ನು ಪೂರ್ಣಗೊಳಿಸುವುದನ್ನು ಒಳಗೊಂಡಿವೆ, ಅದರ ನಂತರ ವಿಂಡೋಸ್‌ಗಾಗಿ ಮೋಲ್ಡ್ ಅನ್ನು ಅಳವಡಿಸಿಕೊಳ್ಳುವ ಕೆಲಸ ಪ್ರಾರಂಭವಾಗುತ್ತದೆ.

ಮೋಲ್ಡ್ ಅನ್ನು C++ (C++20) ನಲ್ಲಿ ಬರೆಯಲಾಗಿದೆ ಮತ್ತು AGPLv3 ಅಡಿಯಲ್ಲಿ ಪರವಾನಗಿ ಪಡೆದಿದೆ, ಇದು GPLv3 ಗೆ ಹೊಂದಿಕೆಯಾಗುತ್ತದೆ, ಆದರೆ GPLv2 ಗೆ ಹೊಂದಿಕೆಯಾಗುವುದಿಲ್ಲ, ಏಕೆಂದರೆ ಇದು ನೆಟ್ವರ್ಕ್ ಸೇವೆಗಳನ್ನು ಅಭಿವೃದ್ಧಿಪಡಿಸುವಾಗ ತೆರೆದ ಬದಲಾವಣೆಗಳ ಅಗತ್ಯವಿರುತ್ತದೆ. ಅಭಿವೃದ್ಧಿ ನಿಧಿಯನ್ನು ಪಡೆಯುವ ಬಯಕೆಯಿಂದ ಈ ಆಯ್ಕೆಯನ್ನು ವಿವರಿಸಲಾಗಿದೆ - ಎಂಐಟಿಯಂತಹ ಅನುಮತಿ ಪರವಾನಗಿ ಅಡಿಯಲ್ಲಿ ಮರುಪಾವತಿಗಾಗಿ ಕೋಡ್‌ಗೆ ಹಕ್ಕುಗಳನ್ನು ಮಾರಾಟ ಮಾಡಲು ಅಥವಾ AGPL ನೊಂದಿಗೆ ತೃಪ್ತರಾಗದವರಿಗೆ ಪ್ರತ್ಯೇಕ ವಾಣಿಜ್ಯ ಪರವಾನಗಿಯನ್ನು ಒದಗಿಸಲು ಲೇಖಕರು ಸಿದ್ಧರಿದ್ದಾರೆ.

ಅಚ್ಚು GNU ಲಿಂಕರ್‌ನ ಎಲ್ಲಾ ವೈಶಿಷ್ಟ್ಯಗಳನ್ನು ಬೆಂಬಲಿಸುತ್ತದೆ ಮತ್ತು ಹೆಚ್ಚಿನ ಕಾರ್ಯಕ್ಷಮತೆಯನ್ನು ಹೊಂದಿದೆ - ಲಿಂಕ್ ಮಾಡುವಿಕೆಯು ಸಿಪಿ ಉಪಯುಕ್ತತೆಯೊಂದಿಗೆ ಫೈಲ್‌ಗಳನ್ನು ಸರಳವಾಗಿ ನಕಲಿಸುವ ಅರ್ಧದಷ್ಟು ವೇಗದಲ್ಲಿ ಮಾತ್ರ ನಿರ್ವಹಿಸಲ್ಪಡುತ್ತದೆ. ಉದಾಹರಣೆಗೆ, Chrome 96 (ಕೋಡ್ ಗಾತ್ರ 1.89 GB) ಅನ್ನು ನಿರ್ಮಿಸುವಾಗ, GNU ಗೋಲ್ಡ್, LLVM lld - 8 ಸೆಕೆಂಡುಗಳು, ಮತ್ತು ಮೋಲ್ಡ್ ಕೇವಲ 53 ಸೆಕೆಂಡುಗಳನ್ನು (11.7 ಪಟ್ಟು ವೇಗವಾಗಿ) ಬಳಸಿಕೊಂಡು 2.2-ಕೋರ್ ಕಂಪ್ಯೂಟರ್‌ನಲ್ಲಿ ಡೀಬಗ್‌ಇನ್‌ಫೋನೊಂದಿಗೆ ಕಾರ್ಯಗತಗೊಳಿಸಬಹುದಾದ ಫೈಲ್‌ಗಳನ್ನು ಲಿಂಕ್ ಮಾಡಲು 26 ಸೆಕೆಂಡುಗಳನ್ನು ತೆಗೆದುಕೊಳ್ಳುತ್ತದೆ. GNU ಚಿನ್ನ). ಕ್ಲಾಂಗ್ 13 (3.18 GB) ಅನ್ನು ಲಿಂಕ್ ಮಾಡುವಾಗ, ಇದು GNU ಚಿನ್ನದಲ್ಲಿ 64 ಸೆಕೆಂಡುಗಳು, LLVM lld ನಲ್ಲಿ 5.8 ಸೆಕೆಂಡುಗಳು ಮತ್ತು ಮೋಲ್ಡ್‌ನಲ್ಲಿ 2.9 ಸೆಕೆಂಡುಗಳನ್ನು ತೆಗೆದುಕೊಳ್ಳುತ್ತದೆ. Firefox 89 (1.64 GB) ಅನ್ನು ನಿರ್ಮಿಸುವಾಗ, ಇದು GNU ಚಿನ್ನದಲ್ಲಿ 32.9 ಸೆಕೆಂಡುಗಳು, LLVM lld ನಲ್ಲಿ 6.8 ಸೆಕೆಂಡುಗಳು ಮತ್ತು ಮೋಲ್ಡ್‌ನಲ್ಲಿ 1.4 ಸೆಕೆಂಡುಗಳನ್ನು ತೆಗೆದುಕೊಳ್ಳುತ್ತದೆ.

LLVM lld ಅಭಿವೃದ್ಧಿಪಡಿಸಿದ ಮೋಲ್ಡ್ ಬಿಲ್ಡರ್‌ನ ಮೊದಲ ಸ್ಥಿರ ಬಿಡುಗಡೆ

ನಿರ್ಮಾಣ ಸಮಯವನ್ನು ಕಡಿಮೆ ಮಾಡುವುದರಿಂದ ಡೀಬಗ್ ಮಾಡುವಾಗ ಮತ್ತು ಬದಲಾವಣೆಗಳನ್ನು ಪರೀಕ್ಷಿಸುವಾಗ ಕಾರ್ಯಗತಗೊಳಿಸಬಹುದಾದ ಫೈಲ್‌ಗಳನ್ನು ಉತ್ಪಾದಿಸುವ ಪ್ರಕ್ರಿಯೆಯಲ್ಲಿ ಕಾಯುವಿಕೆಯನ್ನು ಕಡಿಮೆ ಮಾಡುವ ಮೂಲಕ ದೊಡ್ಡ ಯೋಜನೆಗಳನ್ನು ಅಭಿವೃದ್ಧಿಪಡಿಸುವ ಅನುಕೂಲವನ್ನು ಗಮನಾರ್ಹವಾಗಿ ಸುಧಾರಿಸಬಹುದು. ಪ್ರತಿ ಕೋಡ್ ಬದಲಾವಣೆಯ ನಂತರ ಲಿಂಕ್ ಮಾಡುವಿಕೆ ಪೂರ್ಣಗೊಳ್ಳಲು ಕಾಯಬೇಕಾದ ಹತಾಶೆ, ಮಲ್ಟಿ-ಕೋರ್ ಸಿಸ್ಟಮ್‌ಗಳಲ್ಲಿ ಅಸ್ತಿತ್ವದಲ್ಲಿರುವ ಲಿಂಕರ್‌ಗಳ ಕಳಪೆ ಕಾರ್ಯಕ್ಷಮತೆ ಮತ್ತು ಹೆಚ್ಚು ಸಂಕೀರ್ಣವಾದ ಮಾದರಿಗಳನ್ನು ಆಶ್ರಯಿಸದೆ ಮೂಲಭೂತವಾಗಿ ವಿಭಿನ್ನವಾದ ಲಿಂಕ್ ಮಾಡುವ ಆರ್ಕಿಟೆಕ್ಚರ್ ಅನ್ನು ಪ್ರಯತ್ನಿಸುವ ಬಯಕೆ ಮೋಲ್ಡ್ ಅನ್ನು ರಚಿಸುವ ಪ್ರೇರಣೆಯಾಗಿದೆ. ಹೆಚ್ಚುತ್ತಿರುವ ಲಿಂಕ್ ಆಗಿ.

ಮೋಲ್ಡ್‌ನಲ್ಲಿ ಹೆಚ್ಚಿನ ಸಂಖ್ಯೆಯ ಕಂಪೈಲರ್-ತಯಾರಾದ ಆಬ್ಜೆಕ್ಟ್ ಫೈಲ್‌ಗಳಿಂದ ಕಾರ್ಯಗತಗೊಳಿಸಬಹುದಾದ ಫೈಲ್ ಅನ್ನು ಲಿಂಕ್ ಮಾಡುವ ಹೆಚ್ಚಿನ ಕಾರ್ಯಕ್ಷಮತೆಯನ್ನು ವೇಗವಾದ ಅಲ್ಗಾರಿದಮ್‌ಗಳನ್ನು ಬಳಸಿಕೊಂಡು ಸಾಧಿಸಲಾಗುತ್ತದೆ, ಲಭ್ಯವಿರುವ CPU ಕೋರ್‌ಗಳ ನಡುವಿನ ಕಾರ್ಯಾಚರಣೆಗಳ ಸಕ್ರಿಯ ಸಮಾನಾಂತರೀಕರಣ ಮತ್ತು ಹೆಚ್ಚು ಪರಿಣಾಮಕಾರಿ ಡೇಟಾ ರಚನೆಗಳ ಬಳಕೆ. ಉದಾಹರಣೆಗೆ, ಫೈಲ್‌ಗಳನ್ನು ನಕಲು ಮಾಡುವಾಗ, ಆಬ್ಜೆಕ್ಟ್ ಫೈಲ್‌ಗಳನ್ನು ಮೆಮೊರಿಗೆ ಪೂರ್ವ-ಲೋಡ್ ಮಾಡುವಾಗ, ಅಕ್ಷರ ರೆಸಲ್ಯೂಶನ್‌ಗಾಗಿ ವೇಗದ ಹ್ಯಾಶ್ ಟೇಬಲ್‌ಗಳನ್ನು ಬಳಸುವುದು, ಪ್ರತ್ಯೇಕ ಥ್ರೆಡ್‌ನಲ್ಲಿ ಸ್ಥಳಾಂತರ ಕೋಷ್ಟಕಗಳನ್ನು ಸ್ಕ್ಯಾನ್ ಮಾಡುವುದು ಮತ್ತು ವಿವಿಧ ಫೈಲ್‌ಗಳಲ್ಲಿ ಪುನರಾವರ್ತಿತವಾಗಿರುವ ವಿಲೀನಗೊಂಡ ವಿಭಾಗಗಳನ್ನು ಡಿಡ್ಪ್ಲಿಕೇಟ್ ಮಾಡುವಾಗ ತೀವ್ರವಾದ ಲೆಕ್ಕಾಚಾರಗಳನ್ನು ನಿರ್ವಹಿಸಲು ಮೋಲ್ಡ್ ತಂತ್ರಗಳನ್ನು ಅಳವಡಿಸುತ್ತದೆ.

ಮೂಲ: opennet.ru

ಕಾಮೆಂಟ್ ಅನ್ನು ಸೇರಿಸಿ