Windows – optymalizacja systemu cz.1
windows Sierpień 13th, 2008
Wczorajszy artykuł dotyczył dość skomplikowanych tematów występujących przy budowaniu pakietów RPM (Linux) i zawierał trudne słowa, jak kompilacja, asemblacja i „init 21„. Z racji tego, że nie mam żadnych nowych wieści ze świata Aspire One, poruszę ponownie temat optymalizacji systemu operacyjnego.
Dzisiaj będzie (dla niektórych) bardziej przyjaźnie – bo temat dotyczy Windowsa. Czemu tak przewrotnie umieściłem te dwa odmienne systemy obok siebie, w kolejnych artykułach? Powód jest dość prosty- uważam, że zarówno pan Bill jak i Linus to chłopy z jajami – chodzi oczywiście o jądra systemów operacyjnych…
Jestem ogromnym przeciwnikiem świętej wojny, czyli argumentowania kto ma przewagę „Linux vs. Windows”. Z racji wykonywanego zawodu („integrator/architekt systemów”) nie jest na miejscu z oślim uporem opowiadanie, że np. Apache i system plików ext3, albo Active Directory jest lekiem na wszystkie dolegliwości środowisk serwerowo – desktopowych. Sztuką jest właśnie takie wyciąganie wniosków i takie dobieranie oprogramowania, żeby zarówno wykonawca, jak i klient był zadowolony. Może moje słowa zagotują krew kilku osób, ale z pełną odpowiedzialnością mogę napisać: systemy Linuksowe nie zastąpią jeszcze długo niektórych funkcji oferowanych przez Microsoft (Windows XP / 2003), jak i emeryt Bill (który już nie jest oficjalnym głównodowodzącym w MS) raczej nie doczeka wyparcia z rynku otwartego oprogramowania (i nie chodzi tylko o cenę). Fakt – mam swoje ‘preferencje’, ale o tym nie dzisiaj i na chwilę obecną – będę starał się, aby moje wpisy nie faworyzowały żadnego z systemów…
Wracamy do tematu – Windows i optymalizacja. Nie da się ukryć – kluczem do płynnego i oczekiwanego działania okienek jest porządna konfiguracja. Dzisiaj zajmę się obecnie najpopularniejszym systemem desktopowym, czyli wersją XP. System po zainstalowaniu działa całkiem poprawnie, na upartego można nawet pracować przy 256MB pamięci RAM. Wszystko jest ok. do momentu, kiedy komputer jest tzw. wypasiony – na dzień dzisiejszy nikt nie kupuje nowego zestawu z mniej, niż 1024MB, dyskiem 7200obrotów/min i procesorem z kilkoma rdzeniami. Czasem gdy odwiedzimy znajomego, co lubi grzebać w ustawieniach, to krzyczymy z zachwytu: „jak to możlwe- u niego kilka razy mniej ramu, słaba karta graficzna, procesor za 40zł – a wszysto działa wydajnie i płynnie!”. Całkiem możliwe, że znajomy użył jakiegoś kombajnu – programu, który pomaga bez większej znajomości architektury systemu zoptymalizować ustawienia.
Do najbardziej chyba znanych (komercyjnych) należy TweakXP. Program rzeczywiście ma imponującą ilość funkcji. Poza optymalizacją pod względem konfiguracji sprzętowej (procesor itp.) ilość funkcji może zarówno zachwycić, jak i przerazić: tworzenie ramdysków, umieszczanie folderów cache (np. IE) w pamięci podręcznej, zmiana wyglądu intefejsu, rozbudowana wersja menadżera zadań (np. otwarte biblioteki DLL), czy ‘odzyskanie’ kluczy instalacyjnych Windowsa, albo pakietu MS Office…
Należy jednak pamiętać o pewnym niebezpieczeństwe – niektóre funkcje należy używać bardzo rozważnie, wykonując wcześniej kopię zapasową najważniejszych danych i punkt przywracania systemu. Rozumiem, że prawdziwi twardziele nie robią backupów, ale jak mawia stare przysłowie: „puty dysk dane nosi, puki mu się głowica nie urwie”.
Program jest po prostu zbiorem informacji o konfiguracji systemu – wszystkie te rzeczy można wykonać z wykorzystaniem edytora rejestru, eksploratora plików i edytora tekstowego (najczęściej wystarcza standardowe narzędzie hakera, czyli notatnik – czemu w sumie nie, w jednym z polskich filmiów próbowano się włamać „emacsem przez sendmail” – link YouTube…).
Funkcji takich jest tysiące – wystarczy umiejętność korzystania z grup dyskusyjnych, wyszukiwarki google i forów dyskusyjnych. Dzisiaj poruszę temat „ze środka” – funkcja prefetch. Czemu o tym? Mogę pisać o różniach między systemem plików FAT32 i NTFS, albo umieszczaniu pliku wymiany na osobnej partycji – ale opisana opcja dość znacząco wpływa na wydajność systemu…
Zajrzyjmy, czym się chwali producent:
Co to jest folder Prefetch?
Po każdym włączeniu komputera w systemie Windows jest śledzony sposób uruchamiania komputera i często otwierane programy. Informacje te są zapisywane w systemie Windows w kilku małych plikach w folderze prefetch. Przy kolejnym włączeniu komputera system Windows odwołuje się do tych plików, aby przyspieszyć proces uruchamiania.
Folder prefetch jest podfolderem folderu systemowego Windows. Folder prefetch jest obsługiwany automatycznie i nie trzeba go opróżniać ani usuwać. Opróżnienie tego folderu spowoduje, że system Windows i programy będą uruchamiały się dłużej po kolejnym włączeniu komputera.
To oczywiście martketingowy bełkot, który nam – specjalistom szukających prawdy – niewiele przekazuje informacji. Trochę więcej można przeczytać na MSDN- w zamyślie architektów systemu to genialny mechanizm przyspieszający uruchamianie systemu. Może zanim odpowiem na pytanie, „jak” i „czy” wyłączać tą funkcję, może najpierw skutki działania. W katalogu \Windows\Prefetch\ możemy znaleźć pliki powiązane z procesami uruchomionymi w komputerze. Każda uruchamiana aplikacja ma swoje dziecko w tym katalogu – szkoda tylko, że niektóre zostają sierotami… Moim zdaniem folder i zawarte w nim pliki mogą czasem pomóc administatorowi w określeniu, jaki proces, kiedy i jak często został uruchomiony. Jak chcesz to wykonać łatwo i przyjemnie – polecam program Windows File Analyzer. Tutaj pojawia się pewien paradoks monitoringu – każda inwazyjna metoda może zakłamać wynik (odczyt pliku pozostawia ślad – więc jak nie chcemy pozostawiać zbyt dużo odcisków swojej obecności, to należy robić to na kopii, ale to nie jest tematem tego artykułu).
Czytelniku – masz już pewnie dosyć, więc postaram się w tym miejscu napisać, co to ten cały prefetch. Każde ładowanie programu do pamięci do złożony proces – uruchomienie np. arkusza kalkulacyjnego wymaga wczytania bibliotek, przygotowania podstawowych czcionek. To zajmuje cenny czas. Windows każdej takiej informacji przygląda się z boku i skrzętnie notuje obserwacje do plików .pf. Tworzy sobie rodzaj ściągi, skryptu, makra (każdy może to sobie nazwać, jak mu wygodnie). Potem jakiś złożony, magiczny proces decyduje, jaka część pliku pf zostanie załadowana przy starcie systemu. Brzmi to cudownie – im częściej uruchamiamy program, tym będzie szybciej pojawiał się interfejs na ekranie – każdy kij ma jednak dwa końce. System Windows od zawsze ma problemy ze sprzątaniem po sobie – w tym przypadku jest podobnie. Opiekuje się dziećmi z przedszkola o nazwie Prefetch do czasu, jak przyjaźni się z rodzicami. Jak rodzice odzywają się, to dba o małe pf’y, pogłaszcze po znacziku czasu, pobawi się czasem. Potem zapomina. No i taki pf siedzi sobie bez opieki. Jak to w życiu bywa – dzieciak zamienia się w pasożyta. Zjada zasoby, nie dając nic od siebie…
Zalecam więc co pewien czas wyczyszczenie katalogu Prefetch (uwaga: zostawiamy pliki Layoout.ini – Layout Optimalization). Ponowne uruchomienie systemu może trwać dłużej, ale to tylko jeden raz, potem wpisy będą odbudowywane. Nie należy jednak popadać w skrajność – zbyt częste kasowanie plików nie wpłynie pozytywnie na wydajność OS.
Jak sterować funkcją Prefetch – oczywiście przez rejestr.
HKEY_LOCAL_MACHINE\SYSTEM CurrentControlSet\Control\Session Manager\MemoryManagement\ PrefetchParameters znajduje się wpis EnablePrefetcher. Domyślna wartość to „3″ i oznacza tworzenie plików pf na podstawie prawy aplikacji i startu systemu. Z czasem może opiszę pozostałe opcje (np. wartość „2″ określa optymalizację uruchamiania aplikacji przy starcie Windowsa – całość jest wrzucana do pliku NTOSBOOT*.pf. Wyłączenie mechanizmu możliwe jest przez ustawienie wartości rejestru na „0″.
Czy prefetch to rzeczywiście legendarna opcja, która wg. niektórych członków list dyskusyjnych po włączeniu/wyłączeniu potrafi przyspieszyć komputer o 50%, dysk działa x3 razy szybciej a myszka lepiej się ślizga po stole? Rzecz dyskusyjna. Funkcja przyspiesza start systemu operacyjnego i uruchamianie aplikacji – ale kosztem użycia procesora i pamięci RAM! Pierwsza korzyść – wydaje mi się, że mało przydatna, gdy często korzysta się z opcji hibernacji (moim zdaniem niezbędna opcja w przypadku laptopów). Druga korzyść – szybsze ładowanie aplikacji. Polecam eksperymentować… Samo wyłączenie prefetch może było przydatne, ale w czasach, gdy komputer miał 128/256MB RAM i procesor Celeron 200MHz.
p.s.
Pisząc ten artykuł mam w głowie słowa kolegi magika – programisty od Windowsów: „od czasu ServciePack2 wszystko się pozmieniało z Prefetch, nie ma sensu czyścić tego folderu”). Postaram się przy odbrobinie czasu wykonać kilka eksperymentów…
Jeden Komentarz w “Windows – optymalizacja systemu cz.1”
Zabezpieczenie CAPTCHA (przepisywanie kodu z obrazka) jest uciążliwe, jednak chroni stronę przed ogromną ilością spamu. Na blogu działa także filtr - w sytuacji, gdy użyjesz dwóch (lub więcej) linków, komentarz będzie czekał na akceptację administratora.

Sierpień 13th, 2008 o godzinie 20:59
broken link do emacsa :)