Funktionsversionering är ett tillvägagångssätt för att ta itu med inputsensibility av programoptimeringar. En stor bieffekt av det är anmärkningsvärd kodstorlek ökning, vilket har hindrat dess breda tillämpningar för stora kodbaser och rymdsträngade miljöer. I detta dokument inleder vi en systematisk undersökning av problemet och ger svar på några grundläggande frågor: Med tanke på en rymdbegränsning, till vilken funktion bör vi tillämpa versionshantering? Hur många versioner av en funktion ska vi inkludera i den slutliga körbar? Är det optimala urvalet möjligt att göra i polynom tid? Denna studie bevisar att välja den bästa uppsättningen versioner under en rymdbegränsning är NP-komplett och föreslår en heuristisk algoritm som heter CHoGS som ger nära optimala resultat i kvadratisk tid. Vi implementerar algoritmen och utför experiment genom IBM XL-kompilatorerna. Vi observerar betydande prestandaförbättring med endast liten kodstorlek ökning; resultaten från CHoGS visar faktorer av högre rymdeffektivitet än de från traditionella hotness-baserade metoder.
Zhou m.fl. REF presenterar en rymdeffektiv multiversionsalgoritm som riktar sig till stora kodbaser och begränsade miljöer med fokus på goda prestandaförbättringar med endast liten storleksökning.
Space-efficient multi-versioning for input-adaptive feedback-driven program optimizations
{'venue': 'OOPSLA', 'journal': None, 'mag_field_of_study': ['Computer Science']}