Utvecklare av trådsäkra klasser kämpar med två motsatta mål. Klassen måste vara korrekt, vilket kräver synkroniserande samtidiga åtkomster, och klassen bör ge rimliga prestanda, vilket är svårt att inse i närvaro av onödig synkronisering. Att validera prestandan hos en gängsäker klass är utmanande eftersom det kräver olika arbetsbelastningar som använder klassen, eftersom befintliga prestandaanalystekniker fokuserar på enskilda flaskhalsmetoder, och eftersom det är svårt att mäta prestandan vid samtidiga utföranden. Detta papper presenterar SpeedGun, en automatisk prestanda regressionstestteknik för gängsäkra klasser. Nyckelidén är att generera flertrådiga prestandatester och att jämföra två versioner av en klass med varandra. Analysen meddelar utvecklare när man ändrar en trådsäker klass avsevärt påverkar prestandan hos kunder i denna klass. En utvärdering med 113 par klasser från populära Javaprojekt visar att analysen effektivt identifierar 13 prestandaskillnader, inklusive prestandaregressioner som respektive utvecklare inte var medvetna om.
Till exempel, SpeedGun REF genererar multi-trådade prestanda test fall för att avslöja prestandaskillnader mellan två program versioner.
Performance regression testing of concurrent classes
{'venue': 'ISSTA 2014', 'journal': None, 'mag_field_of_study': ['Computer Science']}