ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಭಾಷೆಯ ಬಿಡುಗಡೆ , ಕಂಪೈಲ್ ಮಾಡಲಾದ ಭಾಷೆಗಳ ಉನ್ನತ ಕಾರ್ಯಕ್ಷಮತೆಯನ್ನು ಸ್ಕ್ರಿಪ್ಟಿಂಗ್ ಭಾಷೆಗಳ ಅನುಕೂಲಗಳಾದ ಬರವಣಿಗೆಯ ಸುಲಭ, ಅಭಿವೃದ್ಧಿಯ ವೇಗ ಮತ್ತು ದೋಷ ರಕ್ಷಣೆಯಂತಹ ಹೈಬ್ರಿಡ್ ಪರಿಹಾರವಾಗಿ ಸಮುದಾಯದ ಭಾಗವಹಿಸುವಿಕೆಯೊಂದಿಗೆ Google ಅಭಿವೃದ್ಧಿಪಡಿಸುತ್ತಿದೆ. ಪ್ರಾಜೆಕ್ಟ್ ಕೋಡ್ BSD ಪರವಾನಗಿ ಅಡಿಯಲ್ಲಿ.
ಗೋ ಸಿಂಟ್ಯಾಕ್ಸ್ ಪೈಥಾನ್ ಭಾಷೆಯಿಂದ ಕೆಲವು ಎರವಲುಗಳೊಂದಿಗೆ ಸಿ ಭಾಷೆಯ ಪರಿಚಿತ ಅಂಶಗಳನ್ನು ಆಧರಿಸಿದೆ. ಭಾಷೆ ಸಾಕಷ್ಟು ಸಂಕ್ಷಿಪ್ತವಾಗಿದೆ, ಆದರೆ ಕೋಡ್ ಅನ್ನು ಓದಲು ಮತ್ತು ಅರ್ಥಮಾಡಿಕೊಳ್ಳಲು ಸುಲಭವಾಗಿದೆ. ಗೋ ಕೋಡ್ ಅನ್ನು ಸ್ಟ್ಯಾಂಡ್-ಅಲೋನ್ ಬೈನರಿ ಎಕ್ಸಿಕ್ಯೂಟಬಲ್ಗಳಾಗಿ ಸಂಕಲಿಸಲಾಗಿದೆ, ಅದು ವರ್ಚುವಲ್ ಯಂತ್ರವನ್ನು ಬಳಸದೆಯೇ ಸ್ಥಳೀಯವಾಗಿ ಚಲಿಸುತ್ತದೆ (ಪ್ರೊಫೈಲಿಂಗ್, ಡೀಬಗ್ ಮಾಡುವಿಕೆ ಮತ್ತು ಇತರ ರನ್ಟೈಮ್ ಸಮಸ್ಯೆ ಪತ್ತೆ ಉಪವ್ಯವಸ್ಥೆಗಳನ್ನು ಹೀಗೆ ಸಂಯೋಜಿಸಲಾಗಿದೆ ), ಇದು ಸಿ ಪ್ರೋಗ್ರಾಂಗಳಿಗೆ ಹೋಲಿಸಬಹುದಾದ ಕಾರ್ಯಕ್ಷಮತೆಯನ್ನು ಸಾಧಿಸಲು ನಿಮಗೆ ಅನುಮತಿಸುತ್ತದೆ.
ಪ್ರಾಜೆಕ್ಟ್ ಅನ್ನು ಆರಂಭದಲ್ಲಿ ಮಲ್ಟಿ-ಥ್ರೆಡ್ ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಮತ್ತು ಮಲ್ಟಿ-ಕೋರ್ ಸಿಸ್ಟಮ್ಗಳಲ್ಲಿ ಸಮರ್ಥ ಕಾರ್ಯಾಚರಣೆಯನ್ನು ಗಮನದಲ್ಲಿಟ್ಟುಕೊಂಡು ಅಭಿವೃದ್ಧಿಪಡಿಸಲಾಗಿದೆ, ಸಮಾನಾಂತರ ಕಂಪ್ಯೂಟಿಂಗ್ ಅನ್ನು ಸಂಘಟಿಸಲು ಆಪರೇಟರ್-ಮಟ್ಟದ ವಿಧಾನಗಳನ್ನು ಒದಗಿಸುವುದು ಮತ್ತು ಸಮಾನಾಂತರ-ಕಾರ್ಯಗತಗೊಳಿಸಿದ ವಿಧಾನಗಳ ನಡುವೆ ಪರಸ್ಪರ ಕ್ರಿಯೆಯನ್ನು ಒದಗಿಸುವುದು ಸೇರಿದಂತೆ. ಭಾಷೆಯು ಅತಿಯಾಗಿ ಹಂಚಿಕೆ ಮಾಡಲಾದ ಮೆಮೊರಿ ಬ್ಲಾಕ್ಗಳ ವಿರುದ್ಧ ಅಂತರ್ನಿರ್ಮಿತ ರಕ್ಷಣೆಯನ್ನು ಒದಗಿಸುತ್ತದೆ ಮತ್ತು ಕಸ ಸಂಗ್ರಾಹಕವನ್ನು ಬಳಸುವ ಸಾಮರ್ಥ್ಯವನ್ನು ಒದಗಿಸುತ್ತದೆ.
ಮುಖ್ಯ Go 1.15 ಬಿಡುಗಡೆಯಲ್ಲಿ ಪರಿಚಯಿಸಲಾಗಿದೆ:
- ಲಿಂಕರ್ ಅನ್ನು ವೇಗ ಮತ್ತು ಮೆಮೊರಿ ಬಳಕೆಯ ವಿಷಯದಲ್ಲಿ ಮತ್ತು ಕೋಡ್ ನಿರ್ವಹಣೆಯನ್ನು ಸರಳಗೊಳಿಸುವ ವಿಷಯದಲ್ಲಿ ಗಮನಾರ್ಹವಾಗಿ ಸುಧಾರಿಸಲಾಗಿದೆ. ELF ಕಾರ್ಯಗತಗೊಳಿಸಬಹುದಾದ ಫೈಲ್ ಸ್ವರೂಪವನ್ನು ಬಳಸುವ ಆಪರೇಟಿಂಗ್ ಸಿಸ್ಟಮ್ಗಳಲ್ಲಿ ಪರೀಕ್ಷಿಸುವಾಗ (Linux(FreeBSD, NetBSD, OpenBSD, Dragonfly, Solaris), ದೊಡ್ಡ Go ಅಪ್ಲಿಕೇಶನ್ಗಳ ವಿಶಿಷ್ಟ ಗುಂಪನ್ನು ಲಿಂಕ್ ಮಾಡುವುದು 20% ವೇಗವಾಗಿದೆ ಮತ್ತು ಮೆಮೊರಿ ಬಳಕೆ ಸರಾಸರಿ 30% ರಷ್ಟು ಕಡಿಮೆಯಾಗಿದೆ. ಹೊಸ ಆಬ್ಜೆಕ್ಟ್ ಫೈಲ್ ಫಾರ್ಮ್ಯಾಟ್ಗೆ ಬದಲಾಯಿಸುವ ಮೂಲಕ ಮತ್ತು ಸಮಾನಾಂತರತೆಯನ್ನು ಹೆಚ್ಚಿಸಲು ಆಂತರಿಕ ಹಂತಗಳನ್ನು ಮರುಕೆಲಸ ಮಾಡುವ ಮೂಲಕ ಈ ಕಾರ್ಯಕ್ಷಮತೆಯ ಸುಧಾರಣೆ ಸಾಧ್ಯವಾಯಿತು. ಸ್ಥಳೀಯ ಲಿಂಕರ್ ಅನ್ನು ಈಗ ಲಿನಕ್ಸ್/ಎಎಮ್ಡಿ64 ಮತ್ತು ಲಿನಕ್ಸ್/ಆರ್ಮ್64 ಸಿಸ್ಟಮ್ಗಳಲ್ಲಿ "-buildmode=pie" ಮೋಡ್ನಲ್ಲಿ ಪೂರ್ವನಿಯೋಜಿತವಾಗಿ ಬಳಸಲಾಗುತ್ತದೆ, ಇದಕ್ಕೆ ಇನ್ನು ಮುಂದೆ ಸಿ ಲಿಂಕರ್ ಬಳಕೆಯ ಅಗತ್ಯವಿರುವುದಿಲ್ಲ.
- ರನ್ಟೈಮ್ನಲ್ಲಿ, ಹೆಚ್ಚಿನ ಸಂಖ್ಯೆಯ CPU ಕೋರ್ಗಳನ್ನು ಹೊಂದಿರುವ ಸಿಸ್ಟಮ್ಗಳಲ್ಲಿ ಸಣ್ಣ ವಸ್ತುಗಳ ವಿತರಣೆಯನ್ನು ಗಮನಾರ್ಹವಾಗಿ ಸುಧಾರಿಸಲಾಗಿದೆ ಮತ್ತು ಸುಪ್ತತೆಯನ್ನು ಕಡಿಮೆ ಮಾಡಲಾಗಿದೆ. ವೈಫಲ್ಯಗಳ ಸಂದರ್ಭದಲ್ಲಿ, ವಿಳಾಸವನ್ನು ತೋರಿಸುವ ಬದಲು ಸಂಖ್ಯಾ ಮತ್ತು ಸ್ಟ್ರಿಂಗ್ ಪ್ರಕಾರಗಳೊಂದಿಗೆ ಮೌಲ್ಯಗಳನ್ನು ಪ್ರದರ್ಶಿಸಲಾಗುತ್ತದೆ. SIGSEGV, SIGBUS ಮತ್ತು SIGFPE ಸಂಕೇತಗಳನ್ನು Go ಅಪ್ಲಿಕೇಶನ್ಗೆ ಕಳುಹಿಸುವಾಗ, os/signal.Notify ಹ್ಯಾಂಡ್ಲರ್ ಅನುಪಸ್ಥಿತಿಯಲ್ಲಿ, ಅಪ್ಲಿಕೇಶನ್ ಸ್ಟಾಕ್ ಟ್ರೇಸ್ ಔಟ್ಪುಟ್ನೊಂದಿಗೆ ನಿರ್ಗಮಿಸುತ್ತದೆ (ಹಿಂದೆ ನಡವಳಿಕೆಯು ಅನಿರೀಕ್ಷಿತವಾಗಿತ್ತು).
- ಕಸ ಸಂಗ್ರಾಹಕಕ್ಕಾಗಿ ಕೆಲವು ಮೆಟಾಡೇಟಾವನ್ನು ಸೇರಿಸುವುದನ್ನು ನಿಲ್ಲಿಸುವ ಮೂಲಕ ಮತ್ತು ಬಳಕೆಯಾಗದ ಮೆಟಾಡೇಟಾದ ಹೆಚ್ಚು ಆಕ್ರಮಣಕಾರಿ ಶುಚಿಗೊಳಿಸುವಿಕೆಯನ್ನು ನಿಲ್ಲಿಸುವ ಮೂಲಕ ರಚಿತವಾದ ಕಾರ್ಯಗತಗೊಳಿಸಬಹುದಾದ ಫೈಲ್ಗಳ ಗಾತ್ರವನ್ನು ಸರಾಸರಿ 5% ರಷ್ಟು ಕಡಿಮೆ ಮಾಡಲು ಕಂಪೈಲರ್ ಅನ್ನು ಆಪ್ಟಿಮೈಸ್ ಮಾಡಲಾಗಿದೆ.
- ಸ್ಪೆಕ್ಟರ್ ವರ್ಗದ ದಾಳಿಗಳ ವಿರುದ್ಧ ರಕ್ಷಣೆಯನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಲು "-ಸ್ಪೆಕ್ಟ್ರೆ" ಫ್ಲ್ಯಾಗ್ ಅನ್ನು ಕಂಪೈಲರ್ ಮತ್ತು ಅಸೆಂಬ್ಲರ್ಗೆ ಸೇರಿಸಲಾಗಿದೆ (ಹೆಚ್ಚಿನ ಕಾರ್ಯಕ್ರಮಗಳಿಗೆ ಇದು ಅಗತ್ಯವಿಲ್ಲ; ಆಯ್ಕೆಯನ್ನು ಸಕ್ರಿಯಗೊಳಿಸುವುದು ಮಾತ್ರ ಸಮರ್ಥಿಸಲ್ಪಡುತ್ತದೆ ).
- X.509 ಪ್ರಮಾಣಪತ್ರಗಳಲ್ಲಿ, CommonName ಕ್ಷೇತ್ರವನ್ನು ಅಸಮ್ಮತಿಗೊಳಿಸಲಾಗಿದೆ, ವಿಷಯ ಪರ್ಯಾಯ ಹೆಸರುಗಳ ಕ್ಷೇತ್ರವು ಕಾಣೆಯಾಗಿದ್ದರೆ ಅದನ್ನು ಹೋಸ್ಟ್ ಹೆಸರಾಗಿ ಪರಿಗಣಿಸಲಾಗುವುದಿಲ್ಲ.
- GOPROXY ಪರಿಸರದ ವೇರಿಯೇಬಲ್ನಲ್ಲಿನ "go" ಆಜ್ಞೆಯು ಈಗ ಬಹು ಪ್ರಾಕ್ಸಿಗಳನ್ನು ಪಟ್ಟಿ ಮಾಡಬಹುದು, ಅಲ್ಪವಿರಾಮ ಅಥವಾ "|" ನಿಂದ ಬೇರ್ಪಡಿಸಲಾಗಿದೆ. ಪಟ್ಟಿಯಲ್ಲಿರುವ ಮೊದಲ ಪ್ರಾಕ್ಸಿ ದೋಷವನ್ನು (404 ಅಥವಾ 410) ಹಿಂತಿರುಗಿಸಿದರೆ, ನಂತರ ಎರಡನೇ ಪ್ರಾಕ್ಸಿ ಮೂಲಕ ಸಂಪರ್ಕಿಸಲು ಪ್ರಯತ್ನಿಸಲಾಗುತ್ತದೆ, ಇತ್ಯಾದಿ.
- "x" ಎಂಬುದು ರೂನ್ ಅಥವಾ ಬೈಟ್ ಅನ್ನು ಹೊರತುಪಡಿಸಿ ಪೂರ್ಣಾಂಕ ಪ್ರಕಾರವಾಗಿದ್ದರೆ ಸ್ಟ್ರಿಂಗ್ (x) ನಿಂದ ಪರಿವರ್ತಿಸಲು ಪ್ರಯತ್ನಿಸುವ ಬಗ್ಗೆ ವೆಟ್ ಉಪಯುಕ್ತತೆಯು ಎಚ್ಚರಿಕೆಯನ್ನು ಸೇರಿಸಿದೆ.
- GNU ಅಸೆಂಬ್ಲರ್ ಸಿಂಟ್ಯಾಕ್ಸ್ ಅನ್ನು ಡಿಸ್ಅಸೆಂಬಲ್ ಮಾಡುವುದನ್ನು ಬೆಂಬಲಿಸಲು "-gnu" ಫ್ಲ್ಯಾಗ್ ಅನ್ನು objdump ಯುಟಿಲಿಟಿಗೆ ಸೇರಿಸಲಾಗಿದೆ.
- ಹೊಸ ಪ್ಯಾಕೇಜ್ ಸೇರಿಸಲಾಗಿದೆ , ಇದು ಪ್ರೋಗ್ರಾಂಗೆ ಸಮಯ ವಲಯದ ಡೇಟಾದೊಂದಿಗೆ ಡೇಟಾಬೇಸ್ ಅನ್ನು ಸಂಯೋಜಿಸಲು ನಿಮಗೆ ಅನುಮತಿಸುತ್ತದೆ.
- ಮೂಲ ಪಠ್ಯಗಳು ಮತ್ತು ದಾಖಲಾತಿಗಳಿಂದ ಶ್ವೇತಪಟ್ಟಿ/ಕಪ್ಪುಪಟ್ಟಿ ಮತ್ತು ಮಾಸ್ಟರ್/ಸ್ಲೇವ್ ಎಂಬ ಪದಗುಚ್ಛಗಳನ್ನು ಈಗ "ಅನುಮತಿಪಟ್ಟಿ", "ಬ್ಲಾಕ್ಲಿಸ್ಟ್", "ಪ್ರಕ್ರಿಯೆ", "pty", "proc" ಮತ್ತು "ನಿಯಂತ್ರಣ" ದಿಂದ ಬದಲಾಯಿಸಲಾಗಿದೆ.
- ಸ್ಟ್ಯಾಂಡರ್ಡ್ ಲೈಬ್ರರಿಗೆ ಸಣ್ಣ ಸುಧಾರಣೆಗಳ ಹೆಚ್ಚಿನ ಭಾಗವನ್ನು ಮಾಡಲಾಗಿದೆ.
- GOARCH=arm ಮತ್ತು GOARCH=arm6.7 ವಿಧಾನಗಳಲ್ಲಿ OpenBSD 64 ಗೆ ಬೆಂಬಲವನ್ನು ಸೇರಿಸಲಾಗಿದೆ (ಹಿಂದೆ GOARCH=386 ಮತ್ತು GOARCH=amd64 ಮಾತ್ರ ಬೆಂಬಲಿತವಾಗಿದೆ).
- 64-ಬಿಟ್ RISC-V ವೇದಿಕೆಯ ಅಭಿವೃದ್ಧಿ (GOOS=linux, GOARCH=riscv64) ಮುಂದುವರೆಯಿತು.
- 32-ಬಿಟ್ x86 ಸಿಸ್ಟಮ್ಗಳಿಗೆ, ಮುಂದಿನ ಬಿಡುಗಡೆಯು ಕನಿಷ್ಟ ಸಿಸ್ಟಮ್ ಅವಶ್ಯಕತೆಗಳನ್ನು ಹೆಚ್ಚಿಸುತ್ತದೆ - SSE2 ನೊಂದಿಗೆ ಪ್ರೊಸೆಸರ್ಗಳು ಮಾತ್ರ ಬೆಂಬಲವನ್ನು ಮುಂದುವರಿಸುತ್ತವೆ. GOARCH=386 ಮೋಡ್ನಲ್ಲಿ ನಿರ್ಮಿಸಲು ನಿಮಗೆ ಕನಿಷ್ಠ ಇಂಟೆಲ್ ಪೆಂಟಿಯಮ್ 4 (2000 ರಲ್ಲಿ ಬಿಡುಗಡೆಯಾಗಿದೆ) ಅಥವಾ AMD ಆಪ್ಟೆರಾನ್/ಅಥ್ಲಾನ್ 64 (2003 ರಲ್ಲಿ ಬಿಡುಗಡೆಯಾಗಿದೆ) ಅಗತ್ಯವಿದೆ.
ಮೂಲ: opennet.ru
