ఫైర్ఫాక్స్ నైట్లీ బిల్డ్లలో JIT కంపైలేషన్ పనితీరు గమనించదగ్గ విధంగా మెరుగుపడింది
В రాత్రిపూట నిర్మిస్తుంది ఫైర్ఫాక్స్ చేర్చబడింది నవీకరించబడిన JIT కంపైలర్, అభివృద్ధి చేశారు సంకేతనామం WarpBuilder. కొత్త JITని ప్రారంభించడానికి, "javascript.options.warp" ఎంపిక about:configలో అందించబడింది.
వార్ప్బిల్డర్ బ్రౌజర్లో కొత్త ఆప్టిమైజేషన్లను చేర్చడానికి మొదటి అడుగు మాత్రమే అని గుర్తించబడింది, ఇవి వచ్చే ఏడాదిలో అమలు చేయడానికి ప్రణాళిక చేయబడ్డాయి.
కొత్త JIT ఇంజిన్లో ట్రాక్ చేయబడిన అంతర్గత రకం సమాచారాన్ని తగ్గించడం ద్వారా మరియు గతంలో ఇంటర్మీడియట్ కోడ్ కాషింగ్ (CacheIR) సాంకేతికతను ఉపయోగించడం ద్వారా SpiderMonkey జావాస్క్రిప్ట్ ఇంజిన్ పనితీరును మెరుగుపరుస్తుంది. ప్రతిపాదించారు "బేస్లైన్" బైట్కోడ్ ఇంటర్ప్రెటర్లో, ఇది సాధారణ ఇంటర్ప్రెటర్ మరియు ప్రీ-జెఐటి కంపైలర్ మధ్య ఇంటర్మీడియట్ సముచిత స్థానాన్ని ఆక్రమిస్తుంది. ఈ మార్పులు JIT నిర్మాణాన్ని గణనీయంగా సరళీకృతం చేయడం, ప్రతిస్పందనను పెంచడం, పేజీ లోడింగ్ సమయాన్ని తగ్గించడం మరియు మెమరీ వినియోగాన్ని తగ్గించడం సాధ్యపడింది.
ఇది గుర్తించబడిందికొత్త JIT పాత JIT IonBuilder యొక్క అనేక సమస్యలను పరిష్కరించింది, అవి:
అమలు యొక్క సంక్లిష్టత మరియు సంభావ్య భద్రతా సమస్యలు;
బేస్లైన్/C++ కోడ్ కోసం అదనపు ఓవర్హెడ్;
అనవసరమైన రీకంపైలేషన్లకు దారితీసే అధిక స్పెషలైజేషన్;
ఇంటర్మీడియట్ కోడ్ని రూపొందిస్తోంది ME (మధ్య స్థాయి IR) ప్రధాన థ్రెడ్లో (WarpBuilderలో, ఇంటర్మీడియట్ కోడ్ యొక్క ప్రధాన అసెంబ్లీ ప్రత్యేక థ్రెడ్లో ఉంచబడుతుంది);
వస్తువుల రకాలు మరియు సమూహాల గురించి డేటాను నిల్వ చేయడానికి అదనపు మెమరీ వినియోగం (ObjectGroups).
సగటున, విజువల్ మెట్రిక్ల ఆధారంగా పనితీరును అంచనా వేసే పరీక్షలలో, WarpBuilderని ఉపయోగిస్తున్నప్పుడు 5-15% వేగం గమనించబడుతుంది. స్పీడోమీటర్ పరీక్ష పూర్తి రేటు 10% పెరిగింది. నిజమైన సైట్లలో పరీక్షించడం వలన Google డాక్స్ లోడింగ్ సమయం తగ్గింది 20%, సూచిక స్పీడ్ ఇండెక్స్ Redditలో ఆండ్రాయిడ్ విభాగాన్ని తెరిచేటప్పుడు మెరుగుపరచబడింది 13%, pdfpaint వేగంగా పని చేయడం ప్రారంభించింది 18%. పరీక్షలో మెమరీ వినియోగం tp6 8% తగ్గింది. సూచికలను డెవలపర్ సాధనాల్లోని గణాంకాలు (devtools perf) కూడా మెమరీ వినియోగంలో 8% తగ్గింపును చూపించింది.