LLVM ld ద్వారా అభివృద్ధి చేయబడిన మోల్డ్ బిల్డర్ యొక్క మొదటి స్థిరమైన విడుదల

LLVM lld లింకర్ మరియు chibicc కంపైలర్ రచయిత Rui Ueyama, కొత్త అధిక-పనితీరు గల మోల్డ్ లింకర్ యొక్క మొదటి స్థిరమైన విడుదలను అందించారు, ఇది ఆబ్జెక్ట్ ఫైల్ లింకింగ్ వేగం పరంగా GNU గోల్డ్ మరియు LLVM lld లింకర్‌ల కంటే ముందుంది. ప్రాజెక్ట్ ఉత్పత్తి విస్తరణలకు సిద్ధంగా ఉంది మరియు Linux సిస్టమ్‌లలో GNU లింకర్‌కు వేగవంతమైన పారదర్శక ప్రత్యామ్నాయంగా ఉపయోగించవచ్చు. తదుపరి ప్రధాన విడుదలకు సంబంధించిన ప్రణాళికల్లో MacOS ప్లాట్‌ఫారమ్‌కు మద్దతును సిద్ధంగా ఉంచడం కూడా ఉంది, ఆ తర్వాత Windows కోసం Moldని స్వీకరించే పని ప్రారంభమవుతుంది.

అచ్చు C++ (C++20)లో వ్రాయబడింది మరియు AGPLv3 లైసెన్స్ క్రింద పంపిణీ చేయబడుతుంది, ఇది GPLv3 కంప్లైంట్ కానీ GPLv2 కంప్లైంట్ కాదు, ఎందుకంటే నెట్‌వర్క్ సేవలను అభివృద్ధి చేస్తున్నప్పుడు దీనికి మార్పులు తెరవాలి. డెవలప్‌మెంట్ ఫండింగ్‌ను పొందాలనే కోరిక కారణంగా ఈ ఎంపిక జరిగింది - రచయిత MIT వంటి అనుమతి లైసెన్స్ క్రింద రీలైసెన్సింగ్ కోసం కోడ్‌కు హక్కులను విక్రయించడానికి లేదా AGPLతో సంతృప్తి చెందని వారికి ప్రత్యేక వాణిజ్య లైసెన్స్‌ను అందించడానికి సిద్ధంగా ఉన్నారు.

అచ్చు GNU లింకర్ యొక్క అన్ని లక్షణాలకు మద్దతు ఇస్తుంది మరియు చాలా వేగంగా ఉంటుంది, cpతో ఫైల్‌లను కాపీ చేయడంలో సగం వేగంతో మాత్రమే లింక్ చేస్తుంది. ఉదాహరణకు, Chrome 96 (కోడ్ పరిమాణం 1.89 GB)ని నిర్మిస్తున్నప్పుడు, GNU గోల్డ్‌ని ఉపయోగించి 8-కోర్ కంప్యూటర్‌లో c debuginfo ఎక్జిక్యూటబుల్‌లను రూపొందించడానికి 53 సెకన్లు, LLVM lld కోసం 11.7 సెకన్లు మరియు మోల్డ్‌కు 2.2 సెకన్లు మాత్రమే (26 రెట్లు వేగంగా) పడుతుంది. GNU బంగారం). క్లాంగ్ 13 (3.18 GB)ని లింక్ చేసినప్పుడు, GNU బంగారం 64 సెకన్లు, LLVM lld 5.8 సెకన్లు మరియు మోల్డ్ 2.9 సెకన్లు పడుతుంది. Firefox 89 (1.64 GB)ని లింక్ చేస్తున్నప్పుడు, GNU గోల్డ్‌కి 32.9 సెకన్లు, LLVM lldకి 6.8 సెకన్లు, మరియు మోల్డ్‌కి 1.4 సెకన్లు పడుతుంది.

LLVM ld ద్వారా అభివృద్ధి చేయబడిన మోల్డ్ బిల్డర్ యొక్క మొదటి స్థిరమైన విడుదల

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

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

మూలం: opennet.ru

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