పరిశోధన ప్రాజెక్ట్లో భాగంగా
పరీక్ష కోసం
తదుపరి దశలో, హార్డ్వేర్ ప్లాట్ఫారమ్ యొక్క లక్షణాలను పరిగణనలోకి తీసుకుని, ఇంటర్ప్రొసెడ్యూరల్ RTL ఆప్టిమైజేషన్లను ప్రత్యేక థ్రెడ్లలోకి తరలించడానికి కూడా ప్రణాళిక చేయబడింది. ఆ తర్వాత, కాల్ యొక్క ప్రత్యేకతలతో సంబంధం లేకుండా, ఫంక్షన్లోని కోడ్కు వర్తించే ఇంట్రాప్రొసెడ్యూరల్ ఆప్టిమైజేషన్ల (IPA) సమాంతరీకరణను అమలు చేయడానికి మేము ప్లాన్ చేస్తున్నాము. ప్రస్తుతానికి పరిమితం చేసే లింక్ చెత్త కలెక్టర్, ఇది బహుళ-థ్రెడ్ మోడ్లో నడుస్తున్నప్పుడు చెత్త సేకరణ కార్యకలాపాలను నిలిపివేసే గ్లోబల్ లాక్ని జోడించింది (భవిష్యత్తులో చెత్త కలెక్టర్ GCC యొక్క బహుళ-థ్రెడ్ అమలు కోసం స్వీకరించబడుతుంది).
పనితీరులో మార్పులను అంచనా వేయడానికి, gimple-match.c ఫైల్ను సమీకరించే ఒక టెస్ట్ సూట్ సిద్ధం చేయబడింది, ఇందులో 100 వేల కంటే ఎక్కువ కోడ్లు మరియు 1700 ఫంక్షన్లు ఉన్నాయి. 5 ఫిజికల్ కోర్లు మరియు 8250 వర్చువల్ (హైపర్థ్రెడింగ్)తో ఇంటెల్ కోర్ i4-8U CPU ఉన్న సిస్టమ్పై పరీక్షలు 7 థ్రెడ్లను నడుపుతున్నప్పుడు ఇంట్రా ప్రొసీడ్యూరల్ GIMPLE ఆప్టిమైజేషన్ల అమలు సమయం 4 నుండి 2 సెకన్ల వరకు మరియు 3 నడుస్తున్నప్పుడు 4 సెకన్ల వరకు తగ్గుదలని చూపించింది. థ్రెడ్లు, అనగా. పరిశీలనలో ఉన్న అసెంబ్లీ దశ వేగంలో పెరుగుదల వరుసగా 1.72 మరియు 2.52 సార్లు సాధించబడింది. హైపర్థ్రెడింగ్తో వర్చువల్ కోర్లను ఉపయోగించడం వల్ల పనితీరు పెరగదని పరీక్షలు కూడా చూపించాయి.
మొత్తం నిర్మాణ సమయం సుమారు 10% తగ్గింది, అయితే అంచనాల ప్రకారం, RTL ఆప్టిమైజేషన్లను సమాంతరంగా చేయడం వలన మరింత స్పష్టమైన ఫలితాలను సాధించవచ్చు, ఎందుకంటే ఈ దశ సంకలనం సమయంలో చాలా ఎక్కువ సమయం పడుతుంది. RTL సమాంతరీకరణ తర్వాత, మొత్తం అసెంబ్లీ సమయం 1.61 రెట్లు తగ్గుతుంది. దీని తర్వాత, IPA ఆప్టిమైజేషన్లను సమాంతరంగా చేయడం ద్వారా నిర్మాణ సమయాన్ని మరో 5-10% తగ్గించడం సాధ్యమవుతుంది.
మూలం: opennet.ru