Aktualizowałeś oprogramowanie, miało być szybciej, a jest… No właśnie. Wszyscy podzielamy tę frustrację. Aktualizacje oprogramowania, które mają sprawić, że nasze aplikacje będą działać szybciej, prowadzą do odwrotnej sytuacji. Te błędy, nazywane w informatyce regresjami wydajności, są czasochłonne do naprawienia, ponieważ ich zlokalizowanie w oprogramowaniu wymaga zazwyczaj znacznej interwencji człowieka. Regresja wydajności to zjawisko wiążące się z powstawaniem błędów w oprogramowaniu po zmianie jakiejś części kodu (na przykład wprowadzeniu poprawki dla innego błędu). Może ona skutkować błędnym działaniem innej funkcji programu, która w poprzednich wersjach działała prawidłowo.
CZYTAJ TAKŻE: Bitwa na superkomputery. Ten będzie najszybszy na świecie
Aby pokonać tę przeszkodę, naukowcy z Texas A&M University, we współpracy z informatykami z Intel Labs, opracowali całkowicie zautomatyzowany sposób identyfikowania źródeł błędów powodowanych przez aktualizacje oprogramowania. Ich algorytm, oparty na specjalistycznej formie maszynowego uczenia się, jest gotowy. Pozwala na znalezienie błędów w ciągu kilku godzin, a nie dni. Zespół przedstawił swój projekt na konferencji Neural Information Processing Systems. – Zaprojektowaliśmy wygodne narzędzie do diagnozowania regresji wydajności, które jest kompatybilne z całą gamą oprogramowania i języków programowania, ogromnie zwiększając jego użyteczność – mówi dr Abdullah Muzahid.
W celu określenia źródła błędów w oprogramowaniu debuggery, czyli programy komputerowe służące do analizy innych programów w celu odnalezienia i identyfikacji zawartych w nich błędów, często sprawdzają stan liczników wydajności w jednostce centralnej. Liczniki te są liniami kodu, które monitorują np. sposób wykonania programu w pamięci komputera. Tak więc podczas uruchamiania programu liczniki rejestrują m.in. ilość wejść do określonych lokalizacji pamięci, czas, przez jaki program pozostaje w pamięci, oraz czas jego wyjścia. W związku z tym, gdy zachowanie programu jest nieprawidłowe, liczniki wykorzystywane są do diagnostyki.
– Liczniki wydajności dają wyobrażenie o stanie wykonania programu – powiedział Muzahid. – Jeśli zatem jakiś program nie działa tak, jak powinien, liczniki te zazwyczaj będą sygnalizować anomalne zachowania.