ಜೆಂಟೂ ಯೋಜನೆಯು ಪೋರ್ಟೇಜ್ 3.0 ಪ್ಯಾಕೇಜ್ ನಿರ್ವಹಣಾ ವ್ಯವಸ್ಥೆಯನ್ನು ಪರಿಚಯಿಸಿತು

ಸ್ಥಿರಗೊಳಿಸಲಾಗಿದೆ ಪ್ಯಾಕೇಜ್ ಮ್ಯಾನೇಜ್ಮೆಂಟ್ ಸಿಸ್ಟಮ್ ಬಿಡುಗಡೆ ಪೋರ್ಟೇಜ್ 3.0, ವಿತರಣೆಯಲ್ಲಿ ಬಳಸಲಾಗುತ್ತದೆ ಜೆಂಟೂ ಲಿನಕ್ಸ್. ಪ್ರಸ್ತುತಪಡಿಸಿದ ಥ್ರೆಡ್ ಪೈಥಾನ್ 3 ಗೆ ಪರಿವರ್ತನೆ ಮತ್ತು ಪೈಥಾನ್ 2.7 ಗೆ ಬೆಂಬಲದ ಅಂತ್ಯದ ದೀರ್ಘಾವಧಿಯ ಕೆಲಸವನ್ನು ಸಂಕ್ಷಿಪ್ತಗೊಳಿಸಿತು.

ಪೈಥಾನ್ 2.7 ಗೆ ಬೆಂಬಲದ ಅಂತ್ಯದ ಜೊತೆಗೆ, ಮತ್ತೊಂದು ಪ್ರಮುಖ ಬದಲಾವಣೆಯು ಸೇರ್ಪಡೆಯಾಗಿದೆ ಆಪ್ಟಿಮೈಸೇಶನ್‌ಗಳು, ಇದು 50-60% ರಷ್ಟು ಅವಲಂಬನೆಗಳನ್ನು ನಿರ್ಧರಿಸಲು ಸಂಬಂಧಿಸಿದ ಲೆಕ್ಕಾಚಾರಗಳನ್ನು ವೇಗಗೊಳಿಸಲು ಸಾಧ್ಯವಾಗಿಸಿತು. ಕುತೂಹಲಕಾರಿಯಾಗಿ, ಕೆಲವು ಡೆವಲಪರ್‌ಗಳು ಅವಲಂಬನೆ ರೆಸಲ್ಯೂಶನ್ ಕೋಡ್ ಅನ್ನು C/C++ ನಲ್ಲಿ ಪುನಃ ಬರೆಯುವಂತೆ ಸಲಹೆ ನೀಡಿದರು ಅಥವಾ ಅದರ ಕಾರ್ಯಾಚರಣೆಯನ್ನು ವೇಗಗೊಳಿಸಲು ಹೋಗಿ, ಆದರೆ ಅವರು ಅಸ್ತಿತ್ವದಲ್ಲಿರುವ ಸಮಸ್ಯೆಯನ್ನು ಕಡಿಮೆ ಪ್ರಯತ್ನದಿಂದ ಪರಿಹರಿಸುವಲ್ಲಿ ಯಶಸ್ವಿಯಾದರು.

ಅಸ್ತಿತ್ವದಲ್ಲಿರುವ ಕೋಡ್ ಅನ್ನು ಪ್ರೊಫೈಲಿಂಗ್ ಮಾಡುವುದರಿಂದ ಹೆಚ್ಚಿನ ಲೆಕ್ಕಾಚಾರದ ಸಮಯವನ್ನು ಯುಸ್_ರೆಡ್ಯೂಸ್ ಮತ್ತು ಕ್ಯಾಟ್‌ಪಿಕೆಜಿಸ್ಪ್ಲಿಟ್ ಫಂಕ್ಷನ್‌ಗಳನ್ನು ಪುನರಾವರ್ತಿತ ಆರ್ಗ್ಯುಮೆಂಟ್‌ಗಳೊಂದಿಗೆ ಕರೆಯಲು ಖರ್ಚು ಮಾಡಲಾಗಿದೆ ಎಂದು ತೋರಿಸಿದೆ (ಉದಾಹರಣೆಗೆ, ಕ್ಯಾಟ್‌ಪಿಕೆಜಿಸ್ಪ್ಲಿಟ್ ಕಾರ್ಯವನ್ನು 1 ರಿಂದ 5 ಮಿಲಿಯನ್ ಬಾರಿ ಕರೆಯಲಾಯಿತು). ವಿಷಯಗಳನ್ನು ವೇಗಗೊಳಿಸಲು, ನಿಘಂಟುಗಳನ್ನು ಬಳಸಿಕೊಂಡು ಈ ಕಾರ್ಯಗಳ ಫಲಿತಾಂಶಗಳ ಸಂಗ್ರಹವನ್ನು ಬಳಸಲಾಗಿದೆ. ಸಂಗ್ರಹ ಸಂಗ್ರಹಣೆಗೆ ಉತ್ತಮ ಆಯ್ಕೆಯೆಂದರೆ ಅಂತರ್ನಿರ್ಮಿತ lru_cache ಕಾರ್ಯ, ಆದರೆ ಇದು 3.2 ರಿಂದ ಪ್ರಾರಂಭವಾಗುವ ಪೈಥಾನ್ ಬಿಡುಗಡೆಗಳಲ್ಲಿ ಮಾತ್ರ ಲಭ್ಯವಿತ್ತು. ಹಿಂದಿನ ಆವೃತ್ತಿಗಳೊಂದಿಗೆ ಹೊಂದಾಣಿಕೆಗಾಗಿ, lru_cache ಅನ್ನು ಬದಲಿಸಲು ಸ್ಟಬ್ ಅನ್ನು ಸೇರಿಸಲಾಯಿತು, ಆದರೆ ಪೋರ್ಟೇಜ್ 2.7 ನಲ್ಲಿ ಪೈಥಾನ್ 3.0 ಗೆ ಬೆಂಬಲವನ್ನು ನಿಲ್ಲಿಸುವ ನಿರ್ಧಾರವು ಕಾರ್ಯವನ್ನು ಹೆಚ್ಚು ಸರಳಗೊಳಿಸಿತು ಮತ್ತು ಈ ಲೇಯರ್ ಇಲ್ಲದೆ ಮಾಡಲು ಸಾಧ್ಯವಾಗಿಸಿತು.

ಸಂಗ್ರಹವನ್ನು ಬಳಸುವುದರಿಂದ ಥಿಂಕ್‌ಪ್ಯಾಡ್ X220 ಲ್ಯಾಪ್‌ಟಾಪ್‌ನಲ್ಲಿ “ಎಮರ್ಜ್ -uDvpU —with-bdeps=y @world” ಕಾರ್ಯಾಚರಣೆಯ ಕಾರ್ಯಗತಗೊಳಿಸುವ ಸಮಯವನ್ನು 5 ನಿಮಿಷ 20 ಸೆಕೆಂಡುಗಳಿಂದ 3 ನಿಮಿಷ 16 ಸೆಕೆಂಡುಗಳಿಗೆ (63%) ಕಡಿಮೆಗೊಳಿಸಿತು. ಇತರ ವ್ಯವಸ್ಥೆಗಳಲ್ಲಿನ ಪರೀಕ್ಷೆಗಳು ಕನಿಷ್ಠ 48% ರಷ್ಟು ಕಾರ್ಯಕ್ಷಮತೆಯ ಹೆಚ್ಚಳವನ್ನು ತೋರಿಸಿದೆ.

ಬದಲಾವಣೆಯನ್ನು ಸಿದ್ಧಪಡಿಸಿದ ಡೆವಲಪರ್ ಸಹ ಸಿ++ ಅಥವಾ ರಸ್ಟ್‌ನಲ್ಲಿ ಅವಲಂಬನೆ ರೆಸಲ್ಯೂಶನ್ ಕೋಡ್‌ನ ಮೂಲಮಾದರಿಯನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸಲು ಪ್ರಯತ್ನಿಸಿದರು, ಆದರೆ ಕಾರ್ಯವು ತುಂಬಾ ಕಷ್ಟಕರವಾಗಿತ್ತು ಏಕೆಂದರೆ ಇದಕ್ಕೆ ಹೆಚ್ಚಿನ ಪ್ರಮಾಣದ ಕೋಡ್ ಅನ್ನು ಪೋರ್ಟ್ ಮಾಡಬೇಕಾಗಿತ್ತು ಮತ್ತು ಫಲಿತಾಂಶವು ಶ್ರಮಕ್ಕೆ ಯೋಗ್ಯವಾಗಿದೆ ಎಂಬ ಅನುಮಾನವಿತ್ತು. .

ಮೂಲ: opennet.ru

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