Abstract-Performance buggar är programmeringsfel som skapar betydande prestandanedbrytning. Medan utvecklare ofta använder automatiserade orakel för att upptäcka funktionella buggar, att upptäcka prestanda buggar kräver vanligtvis tidskrävande, manuell analys av exekveringsprofiler. Den mänskliga ansträngningen för prestandaanalys begränsar antalet analyserade prestandatester och gör det möjligt för prestandabuggar att enkelt fly till produktionen. Tyvärr, medan profilerare kan framgångsrikt lokalisera långsam körning kod, kan profilerare inte effektivt användas som automatiserade orakel. Detta dokument presenterar TODDLER, ett nytt automatiserat orakel för prestandafel, som gör det möjligt att testa prestandafel för att använda den väletablerade och automatiserade testprocessen för funktionella fel. TODDLER rapporterar code loops vars beräkning har repetitiva och delvis liknande minnes-access mönster över loop iterationer. Sådant repetitivt arbete är sannolikt onödigt och kan utföras snabbare. Vi implementerar TODDLER för Java och utvärderar det på 9 populära Java-kodbaser. Våra experiment med 11 tidigare kända, verkliga prestanda buggar visar att TODDLER finner dessa buggar med en högre noggrannhet än standard Java profiler. Med hjälp av TODDLER hittade vi också 42 nya fel i sex Javaprojekt: Ant, Google Core Libraries, JUnit, Apache Collections, JDK och JFreeChart. Baserat på våra felrapporter, utvecklare hittills fixat 10 fel och bekräftat 6 fler som riktiga fel.
Toddler REF upptäcker slingor där många iterationer har liknande minnesåtkomstmönster.
Toddler: Detecting performance problems via similar memory-access patterns
{'venue': '2013 35th International Conference on Software Engineering (ICSE)', 'journal': '2013 35th International Conference on Software Engineering (ICSE)', 'mag_field_of_study': ['Computer Science']}