జెంటూ ప్రాజెక్ట్ పోర్టేజ్ 3.0 ప్యాకేజీ నిర్వహణ వ్యవస్థను ప్రవేశపెట్టింది

స్థిరీకరించబడింది ప్యాకేజీ నిర్వహణ వ్యవస్థ విడుదల పోర్టేజ్ 3.0, పంపిణీలో ఉపయోగించబడుతుంది జెంటూ లైనక్స్. సమర్పించబడిన థ్రెడ్ పైథాన్ 3కి మార్పు మరియు పైథాన్ 2.7కి మద్దతు ముగింపుపై దీర్ఘకాలిక పనిని సంగ్రహించింది.

పైథాన్ 2.7కి మద్దతు ముగింపుతో పాటు, మరొక ముఖ్యమైన మార్పు చేర్చడం ఆప్టిమైజేషన్లు, ఇది 50-60% డిపెండెన్సీలను నిర్ణయించడానికి సంబంధించిన గణనలను వేగవంతం చేయడం సాధ్యపడింది. ఆసక్తికరంగా, కొంతమంది డెవలపర్‌లు డిపెండెన్సీ రిజల్యూషన్ కోడ్‌ను C/C++లో తిరిగి వ్రాయాలని సూచించారు లేదా దాని ఆపరేషన్‌ని వేగవంతం చేయడానికి వెళ్ళండి, కానీ వారు తక్కువ ప్రయత్నంతో ఉన్న సమస్యను పరిష్కరించగలిగారు.

ఇప్పటికే ఉన్న కోడ్‌ను ప్రొఫైలింగ్ చేయడం వల్ల ఎక్కువ సమయం యూజ్_రెడ్యూస్ మరియు క్యాట్‌పికెజిస్ప్లిట్ ఫంక్షన్‌లను రిపీట్ ఆర్గ్యుమెంట్‌లతో కాల్ చేయడానికి వెచ్చించబడిందని తేలింది (ఉదాహరణకు, క్యాట్‌పికెజిస్ప్లిట్ ఫంక్షన్‌ను 1 నుండి 5 మిలియన్ సార్లు పిలుస్తారు). విషయాలను వేగవంతం చేయడానికి, నిఘంటువులను ఉపయోగించి ఈ ఫంక్షన్‌ల ఫలితాలను కాషింగ్ చేయడం ఉపయోగించబడింది. కాష్ నిల్వ కోసం ఉత్తమ ఎంపిక అంతర్నిర్మిత lru_cache ఫంక్షన్, కానీ ఇది 3.2తో ప్రారంభమయ్యే పైథాన్ విడుదలలలో మాత్రమే అందుబాటులో ఉంటుంది. మునుపటి సంస్కరణలతో అనుకూలత కోసం, lru_cache స్థానంలో ఒక స్టబ్ జోడించబడింది, అయితే పోర్టేజ్ 2.7లో పైథాన్ 3.0కి మద్దతును నిలిపివేయాలనే నిర్ణయం పనిని చాలా సులభతరం చేసింది మరియు ఈ లేయర్ లేకుండా చేయడం సాధ్యపడింది.

కాష్‌ని ఉపయోగించడం వలన థింక్‌ప్యాడ్ X220 ల్యాప్‌టాప్‌లో “emerge -uDvpU —with-bdeps=y @world” ఆపరేషన్ యొక్క అమలు సమయాన్ని 5 నిమిషాల 20 సెకన్ల నుండి 3 నిమిషాల 16 సెకన్లకు (63%) తగ్గించింది. ఇతర సిస్టమ్‌లపై పరీక్షలు కనీసం 48% పనితీరు పెరుగుదలను చూపించాయి.

మార్పును సిద్ధం చేసిన డెవలపర్ కూడా C++ లేదా రస్ట్‌లో డిపెండెన్సీ రిజల్యూషన్ కోడ్ యొక్క నమూనాను అమలు చేయడానికి ప్రయత్నించారు, అయితే పని చాలా కష్టంగా ఉంది, ఎందుకంటే దీనికి పెద్ద మొత్తంలో కోడ్‌ను పోర్ట్ చేయాల్సి ఉంటుంది మరియు ఫలితం శ్రమకు తగినదిగా ఉంటుందా అనే సందేహం ఉంది. .

మూలం: opennet.ru

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