Aktualizacja spowalnia? Naukowcy mają na to sposób

Naukowcy z Texas A&M wraz z informatykami z Intel Labs opracowali narzędzie do identyfikacji źródeł błędów spowodowanych przez aktualizacje oprogramowania.

Publikacja: 17.02.2020 21:05

Aktualizacje oprogramowania, które mają sprawić, że nasze aplikacje będą działać szybciej, prowadzą

Aktualizacje oprogramowania, które mają sprawić, że nasze aplikacje będą działać szybciej, prowadzą do odwrotnej sytuacji

Foto: Adobe Stock

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.

CZYTAJ TAKŻE: Rosja zbuduje własny komputer kwantowy

Komputery stacjonarne i serwery mają setki liczników wydajności, co praktycznie uniemożliwia ręczne śledzenie wszystkich ich statusów, a następnie szukanie nietypowych wzorców, które wskazują na błąd wydajności. Tutaj właśnie rozpoczyna się uczenie maszynowe Muzahida. Używając głębokiego uczenia się, badacze byli w stanie monitorować dane pochodzące z dużej liczby liczników jednocześnie.

Kiedy ich algorytm był gotowy, naukowcy testowali, czy jest w stanie znaleźć i zdiagnozować błąd wydajności w dostępnym na rynku oprogramowaniu używanym przez biznes. Uruchamiali swój algorytm na starszej wersji oprogramowania, a następnie na nowszej, ze zdiagnozowaną regresją wydajności, i stwierdzili, że ich algorytm bez trudu zlokalizował i zdiagnozował błędy w ciągu kilku godzin. Tego typu analiza wykonywana ręcznie może trwać bardzo długo.

Oprócz diagnozowania regresji wydajności w oprogramowaniu nowy algorytm głębokiego uczenia się ma potencjalne zastosowanie także w innych obszarach badań, takich jak rozwój technologii potrzebnej do autonomicznego prowadzenia pojazdów.

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.

Pozostało 80% artykułu
2 / 3
artykułów
Czytaj dalej. Subskrybuj
Gadżety
Najdziwniejszy pojazd świata jest sterowany myślami. Sposób na zatłoczone miasta?
Gadżety
Apple szykuje rewolucyjną zmianę. Nadciąga składany iPhone
Gadżety
Sprzedaż pecetów wystrzeli. A ceny? Pojawił się potężny bodziec
Gadżety
Oto nowinki technologiczne, które mają podbić świat. Rusza CES 2024
Materiał Promocyjny
Jak kupić oszczędnościowe obligacje skarbowe? Sposobów jest kilka
Gadżety
Zmieniają się przyciski w klawiaturach. „Przełomowy moment w historii Windows"