ከክላውድፍላሬ፣ ከሞዚላ፣ ከፌስቡክ እና ከብሉምበርግ የመጡ መሐንዲሶች
ለሙከራ
BinaryAST አስቀድሞ በ ውስጥ ይገኛል።
ጃቫ ስክሪፕትን በሚሰራበት ጊዜ ኮዱን በመጫን እና በመተንተን ሂደት ውስጥ ከፍተኛ መጠን ያሳልፋል። በብዙ ታዋቂ ጣቢያዎች ላይ የወረደው ጃቫ ስክሪፕት መጠን ወደ 10 ሜጋ ባይት (ለምሳሌ ፣ ለLinkedIn - 7.2 ሜባ ፣ ፌስቡክ - 7.1 ሜባ ፣ ጂሜይል - 3.9 ሜባ) ቅርብ መሆኑን ከግምት ውስጥ በማስገባት የጃቫ ስክሪፕት የመጀመሪያ ሂደት ትልቅ መዘግየትን ያስተዋውቃል። በአሳሹ በኩል ያለው የመተንተን ደረጃም የቀዘቀዘው ኮዱ በሚጫንበት ጊዜ በበረራ ላይ ያለውን AST ሙሉ በሙሉ መገንባት ባለመቻሉ ነው (አሳሹ ለመጫን የኮድ ብሎኮችን እስኪያጠናቅቅ ድረስ መጠበቅ አለበት ፣ ለምሳሌ የተግባሮች መጨረሻ ፣ ለማግኘት። የአሁኑን አካላት ለመተንተን የጎደለው መረጃ).
ኮዱን ባነሰ እና በተጨመቀ መልኩ በማሰራጨት እንዲሁም የተፈጠረውን ባይትኮድ በአሳሹ በመሸጎጥ ችግሩን በከፊል ለመፍታት እየሞከሩ ነው። በዘመናዊ ድረ-ገጾች ላይ፣ ኮዱ ብዙ ጊዜ ተዘምኗል፣ ስለዚህ መሸጎጥ ችግሩን የሚፈታው በከፊል ነው። WebAssembly መፍትሄ ሊሆን ይችላል ነገር ግን በኮዱ ውስጥ ግልጽ የሆነ መተየብ ያስፈልገዋል እና አሁን ያለውን የጃቫስክሪፕት ኮድ ሂደት ለማፋጠን ተስማሚ አይደለም.
ሌላው አማራጭ ከጃቫ ስክሪፕት ስክሪፕት ይልቅ የተዘጋጀ የተቀናበረ ባይትኮድ ማድረስ ነው፣ ነገር ግን የአሳሽ ኢንጂን ገንቢዎች ይቃወማሉ ምክንያቱም የሶስተኛ ወገን ባይትኮድ ለማረጋገጥ አስቸጋሪ ስለሆነ፣ ቀጥተኛ አሰራሩ ወደ ዌብ ስትራቲፊሽን ሊያመራ ስለሚችል ተጨማሪ የደህንነት ስጋቶች ይነሳሉ እና ሁለንተናዊ ባይትኮድ ቅርጸት ያስፈልጋል።
BinaryAST አዲስ ባይት ኮድ ሳይፈጥሩ ወይም የጃቫስክሪፕት ቋንቋን ሳይቀይሩ አሁን ካለው የኮድ ልማት እና ማቅረቢያ ሞዴል ጋር እንዲገጣጠሙ ይፈቅድልዎታል። በ BinaryAST ቅርጸት ያለው የውሂብ መጠን ከተጨመቀ አነስተኛ ጃቫ ስክሪፕት ኮድ ጋር ይነጻጸራል፣ እና የምንጭን የፅሁፍ ትንተና ደረጃን በማስወገድ የማቀነባበሪያው ፍጥነት በከፍተኛ ሁኔታ ይጨምራል። በተጨማሪም ፣ ሁሉም መረጃዎች እስኪጠናቀቁ ድረስ ሳይጠብቅ BinaryAST እንደተጫነ ፣ ቅርጸቱ ወደ ባይትኮድ ማጠናቀር ያስችላል። በተጨማሪም, በአገልጋዩ በኩል መተንተን ጥቅም ላይ ያልዋሉ ተግባራትን እና አላስፈላጊ ኮድን ከተመለሰው የ BinaryAST ውክልና እንዲያስወግዱ ያስችልዎታል, ይህም በአሳሹ በኩል ሲተነተን, ሁለቱንም በመተንተን እና አላስፈላጊ ትራፊክ በማስተላለፍ ጊዜን ያጠፋል.
የ BinaryAST ባህሪ ደግሞ ሊነበብ የሚችል ጃቫ ስክሪፕት ወደነበረበት የመመለስ ችሎታ ነው ፣ ግን ከዋናው ስሪት ጋር ተመሳሳይ ያልሆነ ፣ ግን በትርጉም አቻ እና ተመሳሳይ የተለዋዋጮችን እና የተግባር ስሞችን ያካትታል (BinaryAST ስሞችን ይቆጥባል ፣ ግን በ ውስጥ ስላሉት ቦታዎች መረጃ አያስቀምጥም) ኮድ, ቅርጸት እና አስተያየቶች). የሳንቲሙ ሌላኛው ጎን አዲስ የጥቃት ቬክተሮች ብቅ ማለት ነው, ነገር ግን እንደ ገንቢዎች ከሆነ, እንደ ባይትኮድ ስርጭት ካሉ አማራጮችን ሲጠቀሙ በጣም ያነሱ እና የበለጠ ቁጥጥር አላቸው.
የፌስቡክ.com ኮድ ሙከራዎች እንደሚያሳዩት ጃቫ ስክሪፕትን መተንተን ከ10-15% የሲፒዩ ሀብቶችን እንደሚፈጅ እና መተንተን ለጂአይቲ ባይትኮድ እና የመጀመሪያ ኮድ ማመንጨት የበለጠ ጊዜ ይወስዳል። በ SpiderMonkey ሞተር ውስጥ, ASTን ሙሉ በሙሉ ለመገንባት ጊዜው ከ500-800 ሚ.ሜትር ይወስዳል, እና የ BinaryAST አጠቃቀም ይህንን ቁጥር በ 70-90% ቀንሷል.
በአጠቃላይ ለአብዛኛዎቹ የድር ርችቶች BinaryAST ን ሲጠቀሙ የጃቫስክሪፕት የትንታኔ ጊዜ በ 3-10% ያለ ማመቻቸት ሁነታ እና በ 90-97% ጥቅም ላይ ያልዋሉ ተግባራትን ችላ የማለት ሁነታ ሲነቃ ይቀንሳል.
1.2 ሜባ የጃቫስክሪፕት ሙከራን ሲያካሂዱ፣ BinaryAST ን በመጠቀም የጅምር ሰአቱ ከ338 እስከ 314 ms በዴስክቶፕ ሲስተም (Intel i7) እና ከ 2019 እስከ 1455 ms በሞባይል መሳሪያ (HTC One M8) ላይ እንዲያፋጥን አስችሎታል።
ምንጭ: opennet.ru