ሂድ የፕሮግራም አወጣጥ ቋንቋ 1.15

የቀረበው በ የፕሮግራሚንግ ቋንቋ መለቀቅ ሂድ 1.15ጎግል በማህበረሰቡ ተሳትፎ የተቀነባበሩ ቋንቋዎችን ከፍተኛ አፈፃፀም እና የስክሪፕት አጻጻፍ ጥቅማ ጥቅሞችን በማጣመር በማህበረሰቡ ተሳትፎ እየተዘጋጀ ይገኛል። የፕሮጀክት ኮድ የተሰራጨው በ በ BSD ፍቃድ.

የGo's syntax በC ቋንቋ ከአንዳንድ ከፓይዘን ቋንቋ ብድሮች ጋር በሚታወቁ የC ቋንቋ ክፍሎች ላይ የተመሰረተ ነው። ቋንቋው በጣም አጭር ነው, ነገር ግን ኮዱ ለማንበብ እና ለመረዳት ቀላል ነው. Go code ቨርቹዋል ማሽን ሳይጠቀሙ በአገር ውስጥ በሚሰሩ ብቻቸውን በሚሰሩ ሁለትዮሽ ፈጻሚዎች (መገለጫ፣ ማረም እና ሌሎች የአሂድ ጊዜ ችግር መፈለጊያ ንዑስ ስርዓቶች የተዋሃዱ ናቸው) የአሂድ ክፍሎች), ይህም ከ C ፕሮግራሞች ጋር የሚወዳደር አፈፃፀም እንድታገኙ ያስችልዎታል.

ኘሮጀክቱ በመጀመሪያ የተገነባው ባለብዙ-ክር ፕሮግራሚንግ እና በብዝሃ-ኮር ስርዓቶች ላይ ቀልጣፋ አሰራርን በመመልከት ሲሆን ይህም በኦፕሬተር ደረጃ ትይዩ ኮምፒውቲንግን ለማደራጀት እና በትይዩ በተፈጸሙ ዘዴዎች መካከል ያለውን መስተጋብር ጨምሮ ። ቋንቋው የተመደበውን የማህደረ ትውስታ ብሎኮች ከመጠን በላይ እንዳይሞላ አብሮ የተሰራ ጥበቃ እና የቆሻሻ አሰባሳቢውን የመጠቀም ችሎታ ይሰጣል።

ዋና ፈጠራዎችበGo 1.15 ልቀት ውስጥ አስተዋወቀ፡-

  • የሥራውን ፍጥነት በመጨመር እና የማህደረ ትውስታ ፍጆታን በመቀነስ እና የኮድ ጥገናን በማቃለል የአገናኝ መንገዱ ስራ በከፍተኛ ሁኔታ ተሻሽሏል. ELF executable የፋይል ፎርማትን (Linux, FreeBSD, NetBSD, OpenBSD, Dragonfly, Solaris) በመጠቀም ኦፕሬቲንግ ሲስተሞች ላይ ሲፈተሽ, የተለመደው ትልቅ Go አፕሊኬሽኖች በ 20% ፍጥነት ተገንብተዋል እና የማስታወሻ ፍጆታ በአማካይ በ 30% ቀንሷል. የሥራውን ትይዩነት ደረጃ ለመጨመር ወደ አዲስ የነገር ፋይል ቅርጸት በመቀየር እና የውስጥ ደረጃዎችን እንደገና በመሥራት ምርታማነትን ማሳደግ ተችሏል። ቤተኛ ማገናኛ አሁን በነባሪ በ linux/amd64 እና linux/arm64 ሲስተሞች በ"-buildmode=pie" ውስጥ ጥቅም ላይ ይውላል፣ይህም ከአሁን በኋላ የC linker መጠቀም አያስፈልገውም።
  • በሂደት ጊዜ፣ ብዛት ያላቸው የሲፒዩ ኮሮች ባሉባቸው ሲስተሞች ላይ የትንንሽ ነገሮች ስርጭት በከፍተኛ ሁኔታ ተሻሽሏል እና መዘግየት ቀንሷል። ውድቀቶች በሚኖሩበት ጊዜ አድራሻውን ከማሳየት ይልቅ የቁጥር እና የሕብረቁምፊ ዓይነቶች ያላቸው እሴቶች ይታያሉ። የSIGSEGV፣ SIGBUS እና SIGFPE ምልክቶችን ወደ Go መተግበሪያ ሲልኩ፣ os/signal በሌለበት ጊዜ። ተቆጣጣሪውን ያሳውቁ፣ አፕሊኬሽኑ በተከመረ የክትትል ውፅዓት ይወጣል (ከዚህ በፊት ባህሪው ሊተነበይ የማይችል ነበር)።
  • ለቆሻሻ ሰብሳቢው አንዳንድ ሜታዳታ ማካተትን በማስቆም እና ጥቅም ላይ ያልዋለውን ሜታዳታ ይበልጥ አጸያፊ ጽዳት በማቆም የሚመነጩ ተፈፃሚ ፋይሎችን መጠን በአማካይ በ 5% ለመቀነስ አቀናባሪው ተመቻችቷል።
  • ከስፔክተር ክፍል ጥቃቶች ጥበቃን ለማስቻል የ"-spectre" ባንዲራ ወደ ማቀናበሪያው እና ሰብሳቢው ላይ ተጨምሯል (ለአብዛኛዎቹ ፕሮግራሞች ይህ አያስፈልግም ፣ አማራጩን ማንቃት ለዚህ ብቻ ትክክለኛ ሊሆን ይችላል) አንዳንድ በጣም የተወሰኑ ጉዳዮች).
  • በX.509 ሰርተፊኬቶች ውስጥ፣ የኮመን ስም መስኩ ተቋርጧል፣ ይህም የርዕሰ ጉዳይ ተለዋጭ ስሞች መስኩ ከጠፋ እንደ አስተናጋጅ ስም አይቆጠርም።
  • በGOPROXY አካባቢ ተለዋዋጭ ውስጥ ያለው የ"ሂድ" ትዕዛዝ አሁን ብዙ ፕሮክሲዎችን ሊዘረዝር ይችላል፣ በነጠላ ሰረዝ ወይም "|" የተለዩ። በዝርዝሩ ውስጥ ያለው የመጀመሪያው ተኪ ስህተት (404 ወይም 410) ከተመለሰ በሁለተኛው ፕሮክሲ ወዘተ በኩል ለመገናኘት ሙከራ ይደረጋል።
  • የእንስሳት ህክምና መገልገያው "x" ከሩን ወይም ባይት ሌላ የኢንቲጀር አይነት ከሆነ ከ string(x) ለመቀየር መሞከርን በተመለከተ ማስጠንቀቂያ አክሏል።
  • የጂኤንዩ ሰብሳቢ አገባብ መበተንን ለመደገፍ የ"-gnu" ባንዲራ ወደ objdump መገልገያ ታክሏል።
  • አዲስ ጥቅል ታክሏል። ጊዜ / tzdata, ይህም በፕሮግራሙ ውስጥ የውሂብ ጎታ ከ የሰዓት ሰቅ ውሂብ ጋር እንዲያዋህዱ ያስችልዎታል.
  • ከምንጭ ጽሑፎች እና ሰነዶች ተወግዷል አሁን በ"ፍቃድ መዝገብ"፣"ብሎክ መዝገብ"፣ "ሂደት"፣ "pty"፣ "proc" እና "control" የተተኩትን ሀረጎች ነጭ መዝገብ/ጥቁር መዝገብ እና ዋና/ባሪያ።
  • ለመደበኛ ቤተ-መጽሐፍት ብዙ ጥቃቅን ማሻሻያዎች ተደርገዋል።
  • ለOpenBSD 6.7 በGOARCH=arm እና GOARCH=arm64 ሁነታዎች ታክሏል (ከዚህ ቀደም GOARCH=386 እና GOARCH=amd64 ብቻ ይደገፋሉ)።
  • የ64-ቢት RISC-V መድረክ ልማት (GOOS=linux፣ GOARCH=riscv64) ቀጥሏል።
  • ለ 32-ቢት x86 ስርዓቶች፣ የሚቀጥለው ልቀት አነስተኛውን የስርዓት መስፈርቶች ያሳድጋል - SSE2 ያላቸው ፕሮሰሰር ብቻ መደገፋቸውን ይቀጥላሉ። በ GOARCH=386 ሁነታ ለመገንባት ቢያንስ ኢንቴል ፔንቲየም 4 (በ2000 የተለቀቀ) ወይም AMD Opteron/Athlon 64 (በ2003 የተለቀቀ) ያስፈልግዎታል።

ምንጭ: opennet.ru

አስተያየት ያክሉ