5-letni błąd w Windows Defenderze, który powodował nagłe wzrosty obciążenia procesora w Firefoksie, wreszcie naprawiony
Zajęło to ponad pięć lat, ale Microsoft w końcu naprawił błąd, który powodował, że Windows Defender drenował zasoby procesora, gdy aktywna była przeglądarka Firefox Mozilla.
W 2018 roku pracownicy Mozilli zgłosili, że wbudowany w Windows 10 program do wykrywania złośliwego oprogramowania powodował, że zużycie procesora sięgało najwyżej 30%.
Według raportu o błędach Mozilli, inżynierowie firmy zgłosili problem Microsoftowi w czerwcu 2018 roku, zauważając, że problemy ze spowolnieniem wydawały się dotyczyć programu o nazwie „MsMpEng.exe”, silnika ochrony przed złośliwym oprogramowaniem dla Defendera. Ale wygląda na to, że wysiłki Microsoftu w celu naprawienia problemu spaliły na panewce – być może dlatego, że potrzebował więcej informacji na temat błędu – co spowodowało, że przez lata nie było żadnych większych aktualizacji dotyczących problemu.
Problem pojawił się ponownie w ostatnich miesiącach po tym, jak jeden z użytkowników serwisu Reddit ponownie zgłosił, że Windows Defender powoduje, że jego komputer zużywa 30% zasobów procesora, gdy Firefox jest aktywny. Yannis Juglaret, starszy inżynier oprogramowania Mozilli, zamieścił oryginalny raport o błędzie, tym razem ze zrzutami ekranu pokazującymi Firefoksa wyzwalającego skoki CPU przez MsMpEng.exe, gdy przeglądarka Google Chrome tego nie robiła.
„Czas CPU wykorzystywany ogólnie przez MsMpEng.exe wydaje się rzeczywiście znacznie wyższy (5x) w Firefoksie w porównaniu z Chrome” – napisał.
Następnie odkrył, że Firefox może wywoływać zbyt wiele obciążających procesor wywołań do VirtualProtect, komponentu Windows, który jest monitorowany przez MsMpEng.exe.
„Przy standardowej konfiguracji Firefoksa, ilość wywołań do VirtualProtect jest obecnie bardzo wysoka i to właśnie tłumaczy wysokie użycie CPU w Firefoksie” – dodał Juglaret. „W Firefoksie wyłączenie JIT sprawia, że MsMpEng.exe zachowuje się znacznie rozsądniej, ponieważ silniki JIT są źródłem zdecydowanej większości wywołań do VirtualProtect”.
Dobrą wiadomością jest to, że Microsoft od tego czasu naprawił błąd, zwijając nową wersję mpengine.dl w zeszłym tygodniu. Juglaret ma jednak inną uwagę na temat wpływu błędu.
„Możesz przeczytać w sieci, że Defender wykonywał zbyt wiele połączeń do VirtualProtect i że globalne wykorzystanie procesora spadnie teraz o 75% podczas przeglądania stron za pomocą Firefoksa. Jest to absolutnie błędne!” napisał w nowym wpisie dotyczącym zgłoszenia błędu. Zamiast tego, użycie CPU dla konkretnego programu MsMpEng.exe, a nie dla całego komputera, „będzie zużywać około 75% mniej CPU niż wcześniej, gdy monitoruje Firefoksa” – dodaje Juglaret na Reddicie.