QEMU మరియు FFmpeg వ్యవస్థాపకులు QuickJS జావాస్క్రిప్ట్ ఇంజిన్‌ను ప్రచురించారు

QEMU మరియు FFmpeg ప్రాజెక్ట్‌లను స్థాపించిన ఫ్రెంచ్ గణిత శాస్త్రజ్ఞుడు ఫాబ్రిస్ బెల్లార్డ్, Pi సంఖ్యను లెక్కించడానికి వేగవంతమైన సూత్రాన్ని కూడా సృష్టించాడు మరియు ఇమేజ్ ఆకృతిని అభివృద్ధి చేశాడు. బిపిజి, కొత్త జావాస్క్రిప్ట్ ఇంజిన్ యొక్క మొదటి విడుదలను ప్రచురించింది QuickJS. ఇంజిన్ కాంపాక్ట్ మరియు ఇతర సిస్టమ్‌లలో ఏకీకరణ కోసం రూపొందించబడింది. ప్రాజెక్ట్ కోడ్ C లో వ్రాయబడింది మరియు MIT లైసెన్స్ క్రింద పంపిణీ చేయబడుతుంది. ఇంజిన్ యొక్క బిల్డ్ కూడా అందుబాటులో ఉంది, ఎమ్‌స్క్రిప్టెన్‌ని ఉపయోగించి వెబ్‌అసెంబ్లీలో కంపైల్ చేయబడింది మరియు బ్రౌజర్‌లలో అమలు చేయడానికి అనుకూలంగా ఉంటుంది.

జావాస్క్రిప్ట్ అమలు మద్దతు ఇస్తుంది మాడ్యూల్స్, అసమకాలిక జనరేటర్లు మరియు ప్రాక్సీలతో సహా ES2019 స్పెసిఫికేషన్. ప్రామాణికం కాని గణితాలు ఐచ్ఛికంగా మద్దతు ఇవ్వబడతాయి విస్తరణ జావాస్క్రిప్ట్ కోసం, బిగ్ఇంట్ మరియు బిగ్‌ఫ్లోట్ రకాలు, అలాగే ఆపరేటర్ ఓవర్‌లోడింగ్. QuickJS యొక్క పనితీరు ముఖ్యమైనది కంటే ఉన్నతమైనది అందుబాటులో ఉన్న అనలాగ్‌లు, ఉదాహరణకు, పరీక్షలో
బెంచ్-v8 ఇంజిన్ కంటే ముందు ఉంది XS 35% ద్వారా, డక్ టేప్ రెట్టింపు కంటే ఎక్కువ జెర్రీస్క్రిప్ట్ మూడు సార్లు మరియు MuJS ఏడు సార్లు.

అప్లికేషన్‌లలో ఇంజిన్‌ను పొందుపరచడానికి లైబ్రరీతో పాటు, ప్రాజెక్ట్ qjs ఇంటర్‌ప్రెటర్‌ను కూడా అందిస్తుంది, ఇది కమాండ్ లైన్ నుండి జావాస్క్రిప్ట్ కోడ్‌ను అమలు చేయడానికి ఉపయోగించవచ్చు. అంతేకాకుండా, qjsc కంపైలర్ అందుబాటులో ఉంది, బాహ్య డిపెండెన్సీలు అవసరం లేని స్టాండ్-అలోన్ ఎగ్జిక్యూషన్‌కు అనువైన అవుట్‌పుట్ ఎక్జిక్యూటబుల్ ఫైల్‌లను రూపొందించగల సామర్థ్యం ఉంది.

ప్రధాన లక్షణాలు

  • కాంపాక్ట్ మరియు ఇతర ప్రాజెక్ట్‌లలో ఇంటిగ్రేట్ చేయడం సులభం. కోడ్ అసెంబ్లీకి బాహ్య డిపెండెన్సీలు అవసరం లేని కొన్ని C ఫైల్‌లను మాత్రమే కలిగి ఉంటుంది. సరళమైన కంపైల్ అప్లికేషన్ 190 KB పడుతుంది;
  • చాలా ఎక్కువ పనితీరు మరియు తక్కువ ప్రారంభ సమయం. 56 వేల ECMAScript అనుకూలత పరీక్షలలో ఉత్తీర్ణత సాధించడానికి సాధారణ డెస్క్‌టాప్ PC యొక్క సింగిల్ కోర్‌లో అమలు చేయబడినప్పుడు సుమారు 100 సెకన్లు పడుతుంది. రన్‌టైమ్ ప్రారంభానికి 300 మైక్రోసెకన్ల కంటే తక్కువ సమయం పడుతుంది;
  • ES2019 స్పెసిఫికేషన్‌కు దాదాపు పూర్తి మద్దతు మరియు అపెండిక్స్ Bకి పూర్తి మద్దతు, ఇది లెగసీ వెబ్ అప్లికేషన్‌లతో అనుకూలత కోసం భాగాలను నిర్వచిస్తుంది;
  • ECMAScript టెస్ట్ సూట్ నుండి అన్ని పరీక్షలలో పూర్తి ఉత్తీర్ణత;
  • బాహ్య డిపెండెన్సీలు లేకుండా ఎక్జిక్యూటబుల్ ఫైల్‌లలో జావాస్క్రిప్ట్ కోడ్‌ను కంపైల్ చేయడానికి మద్దతు;
  • సైక్లిక్ క్లీనింగ్ లేకుండా రిఫరెన్స్ లెక్కింపు ఆధారంగా ఒక చెత్త కలెక్టర్, ఇది ఊహించదగిన ప్రవర్తనను సాధించడానికి మరియు మెమరీ వినియోగాన్ని తగ్గించడానికి మాకు వీలు కల్పించింది;
  • జావాస్క్రిప్ట్‌లో గణిత గణనల కోసం పొడిగింపుల సమితి;
  • కమాండ్ లైన్ మోడ్‌లో కోడ్‌ని అమలు చేయడానికి షెల్, సందర్భోచిత కోడ్ హైలైటింగ్‌కు మద్దతు ఇస్తుంది;
  • C లైబ్రరీపై రేపర్‌లతో కూడిన కాంపాక్ట్ స్టాండర్డ్ లైబ్రరీ.

ప్రాజెక్ట్ క్విక్‌జెఎస్‌లో పాల్గొన్న మూడు సి లైబ్రరీలను కూడా అభివృద్ధి చేస్తోంది మరియు వ్యక్తిగత వినియోగానికి అనుకూలంగా ఉంటుంది:

  • libregexp - సాధారణ వ్యక్తీకరణల వేగవంతమైన అమలు, జావాస్క్రిప్ట్ ES 2019 స్పెసిఫికేషన్‌తో పూర్తిగా అనుకూలంగా ఉంటుంది;
  • libunicode - యూనికోడ్‌తో పని చేయడానికి ఒక కాంపాక్ట్ లైబ్రరీ;
  • libbf - కచ్చితమైన రౌండింగ్‌తో ఏకపక్ష ఖచ్చితత్వ ఫ్లోటింగ్ పాయింట్ ఆపరేషన్‌లు మరియు ట్రాన్స్‌సెండెంటల్ ఫంక్షన్‌ల అమలు.

మూలం: opennet.ru

ఒక వ్యాఖ్యను జోడించండి