WebAssembly 2.0 መደበኛ ቅድመ እይታ ይገኛል።

W3C WebAssembly 2.0 middleware እና ተዛማጅ ኤፒአይን ደረጃውን የጠበቀ አዲስ ዝርዝር መግለጫ አሳትሟል፣ ይህም በአሳሾች እና በሃርድዌር መድረኮች ላይ ተንቀሳቃሽ የሆኑ ከፍተኛ አፈጻጸም ያላቸውን አፕሊኬሽኖች መፍጠር ያስችላል። WebAssembly ከተለያዩ የፕሮግራም አወጣጥ ቋንቋዎች የተሰበሰቡ መተግበሪያዎችን ለማሄድ ከአሳሽ ነጻ፣ ሁለንተናዊ፣ ዝቅተኛ-ደረጃ መካከለኛ ኮድ ያቀርባል። JIT ለ WebAssembly በመጠቀም፣ ወደ ቤተኛ ኮድ ቅርብ የአፈጻጸም ደረጃዎችን ማሳካት ትችላለህ።

WebAssembly ቴክኖሎጂ በአሳሹ ውስጥ ከፍተኛ አፈጻጸም ያላቸውን ተግባራት ማለትም የቪዲዮ ኢንኮዲንግ፣ ኦዲዮ ማቀናበሪያ፣ ግራፊክስ እና 3D ማጭበርበር፣ የጨዋታ ልማት፣ ክሪፕቶግራፊክ ኦፕሬሽኖች እና የሂሳብ ስሌቶች ባሉበት እንደ C/C++ ባሉ በተጠናቀሩ ቋንቋዎች እንዲፃፍ በመፍቀድ መጠቀም ይቻላል። .

ከWebAssembly ዋና ግቦች መካከል ተንቀሳቃሽነት፣ ሊተነበይ የሚችል ባህሪ እና በተለያዩ መድረኮች ላይ ተመሳሳይ ኮድ አፈጻጸም ማረጋገጥ ነው። በቅርብ ጊዜ፣ WebAssembly በማናቸውም መሠረተ ልማት፣ ኦፕሬቲንግ ሲስተም እና መሣሪያ ላይ ኮድን በአስተማማኝ ሁኔታ ለማስፈጸም እንደ ሁለንተናዊ መድረክ አስተዋውቋል።

W3C ለWebAssembly 2.0 ሶስት ረቂቅ ዝርዝሮችን አሳትሟል፡

  • WebAssembly Core - WebAssembly መካከለኛ ኮድን ለማሄድ ዝቅተኛ-ደረጃ ምናባዊ ማሽንን ይገልጻል። ከWebAssembly ጋር የተያያዙ ግብዓቶች የሚቀርቡት በ".wasm" ቅርጸት ነው፣ በጃቫ ውስጥ ካሉ ".class" ፋይሎች ጋር ተመሳሳይ፣ ከውሂቡ ጋር ለመስራት የማይንቀሳቀስ ውሂብ እና የኮድ ክፍሎችን የያዙ።
  • WebAssembly JavaScript በይነገጽ - ከጃቫ ስክሪፕት ጋር ለመዋሃድ ኤፒአይ ያቀርባል። እሴቶችን እንዲያገኙ እና ግቤቶችን ወደ WebAssembly ተግባራት እንዲያሳልፉ ያስችልዎታል። የ WebAssembly አፈፃፀም የጃቫ ስክሪፕት ደህንነት ሞዴልን ይከተላል እና ከዋናው ስርዓት ጋር ያለው ግንኙነት ሁሉ የጃቫ ስክሪፕት ኮድን በማስፈጸም በተመሳሳይ መንገድ ይከናወናል።
  • WebAssembly Web API - የ ".wasm" ሀብቶችን ለመጠየቅ እና ለማስፈጸም በተስፋው ዘዴ ላይ በመመስረት የፕሮግራም አወጣጥ በይነገጽን ይገልጻል። የWebAssembly መገልገያ ቅርጸቱ ፋይሉ ሙሉ በሙሉ እስኪጫን ድረስ ሳይጠብቅ አፈጻጸም እንዲጀምር ተመቻችቷል፣ ይህም የድር መተግበሪያዎችን ምላሽ ሰጪነት ያሻሽላል።

በWebAssembly 2.0 ውስጥ ያሉት ዋና ለውጦች ከመደበኛው የመጀመሪያ ስሪት ጋር ሲነጻጸሩ፡-

  • በበርካታ አሃዛዊ እሴቶች ላይ በትይዩ (ሲኤምዲ, ነጠላ መመሪያ ብዙ ውሂብ) ላይ ድርጊቶችን እንዲፈጽሙ የሚያስችልዎ ለ v128 የቬክተር አይነት እና ተዛማጅ የቬክተር መመሪያዎች ድጋፍ.
  • ተለዋዋጭ አለምአቀፍ ተለዋዋጮችን የማስመጣት እና የመላክ ችሎታ፣ አለምአቀፍ ትስስር በC++ ውስጥ ያሉ እንደ ቁልል ጠቋሚዎች ያሉ እሴቶች።
  • አዲስ ተንሳፋፊ ወደ int ልወጣ መመሪያዎች፣ ውጤቱ በሚበዛበት ጊዜ ልዩ ሁኔታን ከመጣል፣ የሚቻለውን ዝቅተኛውን ወይም ከፍተኛውን እሴት ይመልሱ (ለሲምዲ አስፈላጊ)።
  • የኢንቲጀር የምልክት መስፋፋት መመሪያዎች (ምልክት እና እሴትን በመጠበቅ የቁጥሩን ትንሽ ጥልቀት መጨመር)።
  • በርካታ እሴቶችን የሚመልሱ ብሎኮች እና ተግባራት ድጋፍ (ብዙ መለኪያዎችን ወደ ተግባራት ከማስተላለፍ በተጨማሪ)።
  • የBigInt64Array እና BigUint64Array JavaScript ተግባራትን በቢግ ኢንት ጃቫስክሪፕት አይነት እና በ64-ቢት ኢንቲጀር ውክልና መካከል ለመቀየር።
  • የማጣቀሻ ዓይነቶችን (funcref እና externref) እና ተጓዳኝ መመሪያዎቻቸውን (ምረጥ, ref.null, ref.func እና ref.is_null) ድጋፍ.
  • Memory.copy, memory.fill, memory.init, እና data.drop መመሪያዎች በማህደረ ትውስታ ክልሎች መካከል መረጃን ለመቅዳት እና የማስታወሻ ክፍሎችን ለማጽዳት.
  • ሰንጠረዦችን በቀጥታ ለማግኘት እና ለማሻሻል መመሪያዎች (table.set, table.get, table.size, table.grow). በአንድ ሞጁል ውስጥ ብዙ ጠረጴዛዎችን የመፍጠር, የማስመጣት እና የመላክ ችሎታ. ሰንጠረዦችን በባች ሁነታ ለመቅዳት/ለመሙላት ተግባራት (table.copy, table.init እና elem.drop).

ምንጭ: opennet.ru

አስተያየት ያክሉ