Programmaprioriteit instellen. Prioriteit verhogen in Taakbeheer van het Windows-besturingssysteem. Procesprioriteiten beheren in Windows

Laten we praten over Windows-procesprioriteiten. In de meeste gevallen is het niet nodig om te “spelen” met het stellen van prioriteiten, maar soms kan een competente systeembeheerder het systeem helpen de processortijd correcter te verdelen tussen lopende taken. Er is niet één recept, maar door “selectie en zoeken” is het heel goed mogelijk. Waar zou dit nodig kunnen zijn? In de 1C-SQL-combinatie kunt u bijvoorbeeld meer processortijd geven aan 1C en SQL, als de meest resource-kritieke processen.

Over het algemeen kunt u de prioriteit van een lopend proces bekijken en wijzigen via Taakbeheer

RamenNT/2000/7 /2008

Op Windows 2012 het werd een beetje dieper "begraven".

Zoals uit de bovenstaande voorbeelden blijkt, zijn er slechts 6 prioriteiten voor u beschikbaar (zoals later blijkt, zijn dit de prioriteiten). prioriteit klassen). Genoeg? Microsoft denkt van wel. Maar laten we de "legendarische" zin van Bill Geist onthouden, die zei dat "640 KB RAM genoeg zal zijn voor iedereen." Maar de tijd heeft geleerd dat dit verre van het geval is. :)

Laten we nu eens kijken hoe het werkelijk is.

Er zijn eigenlijk 32 prioriteitsniveaus in Windows, van 0 tot 31.

Ze zijn als volgt gegroepeerd:

  • 31 — 16 realtime niveaus;
  • 15 — 1 dynamische niveaus;
  • 0 - systeemniveau gereserveerd voor de nulpaginathread.

Wanneer een proces wordt gemaakt, krijgt het een van de zes toegewezen prioriteit klassen:

  1. Realtimeklasse (waarde 24),
  2. Hoge klasse (waarde 13),
  3. Boven normale klasse (waarde 10),
  4. Normale klasse (waarde 8),
  5. Beneden normale klasse (waarde 6),
  6. of Inactieve klasse (waarde 4).

U kunt de procesprioriteit bekijken, zoals hierboven beschreven, met behulp van Taakbeheer.

Opmerking: Prioriteiten boven normaal en beneden normaal zijn geïntroduceerd sinds Windows 2000.

Prioriteit van elke thread ( basisdraadprioriteit) bestaat uit de prioriteit van het proces en relatieve prioriteit de stroom zelf. Er zijn zeven relatieve threadprioriteiten:

  1. Normaal: hetzelfde als het proces;
  2. Boven normaal: +1 voor procesprioriteit;
  3. Beneden normaal: -1;
  4. Hoogste: +2;
  5. Laagste: -2;
  6. Tijdkritisch: stelt de basisthreadprioriteit voor de Realtime-klasse in op 31, voor andere klassen op 15.
  7. Inactief: stelt de basisthreadprioriteit voor de Realtime-klasse in op 16, voor andere klassen op 1.

De volgende tabel toont de proces-, relatieve en basisthreadprioriteiten.

Onderwerpprioriteit Proces klasse Proces klasse
Inactieve klas Beneden de normale klasse Normale klasse Boven normale klasse Hoge klasse Realtime les
1 InactiefInactiefInactiefInactiefInactief
2 Laagste
3 Onderstaand...
4 Inactieve klas NormaalLaagste
5 Boven...Onderstaand...
6 Beneden de normale klasse HoogsteNormaalLaagste
7 Boven...Onderstaand...
8 Normale klasse HoogsteNormaalLaagste
9 Boven...Onderstaand...
10 Boven normale klasse HoogsteNormaal
11 Boven...Laagste
12 HoogsteOnderstaand...
13 Hoge klasse Normaal
14 Boven...
15 Hoogste
15 TijdkritischTijdkritischTijdkritischTijdkritischTijdkritisch
16 Inactief
17
18
19
20
21
22 Laagste
23 Onderstaand...
24 Realtime les Normaal
25 Boven...
26 Hoogste
27
28
29
30
31 Tijdkritisch

Nu we dit allemaal weten, wat kunnen we eraan doen? Begin bijvoorbeeld met gebruiken.

Hoe kun je anders een proces met een “niet-standaard” prioriteit uitvoeren of wijzigen?

Methode 1. Start een taak/proces en wijzig de prioriteit via Taakbeheer.

Nadelen van de methode:

  • Er zijn slechts 6 prioriteiten beschikbaar
  • Het wisselen van prioriteiten gebeurt met de muis en is niet geautomatiseerd.

Methode 2. U kunt het START-commando gebruiken met de juiste toetsen

De beschikbare prioriteitsopties zijn als volgt (ik laat met opzet de opdrachtregelopties voor de opdracht weg BEGIN niet gerelateerd aan het beschreven proces van werken met prioriteiten):

C:\>start /?
Start een apart venster om een ​​specifiek programma of commando uit te voeren.
BEGIN ["titel"]


LAAG Start de aanvraag in de IDLE-prioriteitsklasse.
NORMAAL Start de toepassing in de prioriteitsklasse NORMAL.
HOOG Start de aanvraag in de klasse HOGE prioriteit.
REALTIME Start de applicatie in de REALTIME prioriteitsklasse.
BOVENNORMAAL Start de toepassing in de BOVENNORMALE prioriteitsklasse.
ONDERNORMAAL Start de toepassing in de prioriteitsklasse BELOWNORMAL.

Zoals u kunt zien, maakt het START-commando het mogelijk om een ​​proces te starten met dezelfde 6 prioriteiten die beschikbaar zijn via Taakbeheer

Nadeel van de methode:

  • Er zijn slechts 6 prioriteiten beschikbaar

Methode 3: Het hulpprogramma wmic.exe gebruiken

Zoals hierboven weergegeven, zijn Taakbeheer en het START-commando behoorlijk onhandig voor het toewijzen van prioriteiten. Laten we eens kijken hoe we dit flexibeler kunnen gebruiken. We zullen het hulpprogramma gebruiken wmic.exe.

Commandoregel:

wmic-proces waarbij naam = "AppName" CALL setpriority ProcessIDLevel

wmic-proces waarbij naam = "calc.exe" CALL setpriority 32768

wmic-proces waarbij naam = "calc.exe" CALL setpriority "boven normaal"

Prioriteiten (vooraf gedefinieerd):

  • inactief: 64
  • beneden normaal: 16384
  • normaal: 32
  • boven normaal: 32768
  • hoge prioriteit: 128
  • realtime: 256

Toevluchtsoord. Wat te doen als er meerdere processen met dezelfde naam zijn? De prioriteit van een proces kan worden gewijzigd via de procesnaam of via de PID (Process ID) van het proces.

Hier is een kort voorbeeld van het uitvoeren van wmic.exe om de benodigde informatie te verkrijgen

Wij gebruiken het commando:

Opmerking: Ik zal geen voorbeeld geven van het uitvoeren van dit commando. De lijst met processen is te groot. U kunt dit zelf doen, als u dat wenst.

U krijgt een lijst met processen die op uw lokale computer worden uitgevoerd. Voer nu het commando uit:

wmic proceslijst kort | zoek "cmd.exe"

Resultaat:

Ik heb speciaal verschillende exemplaren van cmd.exe gelanceerd om de illustratie completer te maken.

Nu is de lijst met processen alleen beperkt tot die processen waarvan de uitvoerbare modulenaam de string “cmd.exe” bevat. Let op de PID van het proces(sen).

Laten we nu proberen de processen waarin we geïnteresseerd zijn te selecteren door WMI rechtstreeks te gebruiken en zonder toevlucht te nemen tot standaard opdrachtregelprogramma's. Om dit te doen, schrijft u eenvoudig:

wmic-proces waarbij de beschrijving = "cmd.exe" kort is

Resultaat:

Vergelijk uw resultaten. Onthoud de PID van het CMD.EXE-proces.

Commandoregel om wmic.exe uit te voeren

wmic-proces waarbij processid = "XXXX" CALL setpriority ProcessIDLevel

Welnu, nu kunnen we de prioriteit van een specifiek proces wijzigen (bijvoorbeeld met PID=8476):

wmic-proces waarbij processid = "8476" CALL setpriority 32768

wmic-proces waarbij processid = "8476" CALL setpriority "boven normaal"

Goede dag allemaal. Vandaag zullen we, zoals je uit de titel begrijpt, praten over hoe versnel uw computer en processor gebruik maken van prioritering.

Veel mensen hebben waarschijnlijk gehoord dat je voor verschillende processen verschillende prioriteiten (achtergrond, normaal, hoog, realtime, enz.) kunt gebruiken, waardoor de prestaties ervan worden geoptimaliseerd en er meer verwerkingskracht (processortijd) aan wordt toegewezen.

Soms hielp dit de werking van een bepaalde applicatie of het systeem als geheel aanzienlijk te versnellen, en zelfs (ping) (ik zal in principe in een apart artikel de redenen schetsen voor het verminderen van ping, afhankelijk van de processorprioriteiten en het vermogen).

Hoe je in theorie een computer en processor kunt versnellen

Je zult het er echter mee eens zijn dat bijvoorbeeld een 3D-spel en een gewoon notitieblok enigszins verschillende toepassingen zijn en dat het spel uiteraard in realtime meer processorbronnen nodig heeft, omdat het onwaarschijnlijk is dat je in een 3D-toepassing met dit notitieblok zult communiceren en Je hebt het voorlopig niet nodig (en het notitieblok heeft bijna geen speciale processorkracht nodig - dat programma is er niet... zomaar).

Vanaf hier lijkt het logisch dat verschillende applicaties verschillende prioriteiten moeten hebben (vooral in tijden van multi-cores), maar in de praktijk is dit verre van realiteit.

Zoals je al begrijpt, kom ik op het idee dat volwaardige applicaties een hogere prioriteit moeten krijgen, waardoor ze automatisch aanzienlijk worden geoptimaliseerd door meer computerbronnen te injecteren.

Maar ik denk dat je het ermee eens zult zijn dat dit elke keer handmatig doen (omdat de prioriteit die is ingesteld in Taakbeheer door het systeem wordt vergeten na een herstart) een echte straf is en over het algemeen lui is, en daarom moet je dit proces op de een of andere manier automatiseren, d.w.z. Dat wil zeggen, voorwaardelijk is het versnellen van de computer en de processor niet volledig handmatig.

Dit is waar we het in dit artikel over zullen hebben.

Hoe u in de praktijk een computer kunt versnellen met behulp van het programma

Ongeveer twee maanden geleden kwam ik een prachtig programma tegen genaamd Mz CPU Accelerator. Wat het doet is dat het automatisch de processorprioriteit van het actieve venster of de actieve applicatie verandert naar een vooraf gespecificeerde prioriteit, wat over het algemeen is wat we nodig hebben, omdat dit de processor en de computer zal versnellen.

Bovendien is dit alles op een zeer handige, logische manier geïmplementeerd en vereist het geen onnodige bewegingen van de gebruiker. Bovendien is er ondersteuning voor multiprocessing (multi-core) en de mogelijkheid om een ​​applicatie in een apart segment uit te voeren (dat wil zeggen, slechts twee van de vier cores aan een programma toe te wijzen (dit komt dichter bij een zeer gerichte optimalisatie)).

Opmerking: Hoe ik dit wonder niet eerder tegenkwam, weet ik niet :)

Namelijk:

  • zet de cirkel Realtime;
  • vink het selectievakje Laden bij opstarten van Windows aan (zodat het programma onmiddellijk wordt geladen wanneer het systeem opstart);
  • Start geactiveerd (zodat het programma onmiddellijk wordt geactiveerd, dat wil zeggen, zodat het geen extra druk op de knop nodig heeft om aan zijn taken te beginnen) en..
  • Start geminimaliseerd (zodat het in eerste instantie wordt geminimaliseerd naar de lade).

Als je wilt, kun je ook Controleren op updates bij het opstarten aanvinken (zodat je meteen kunt controleren of er programma-updates zijn verschenen), en ook kiezen hoe het programma naar jouw smaak in de lade wordt weergegeven: Show Mz CPU Accelerator Icon (het pictogram van het programma zelf staat in de lade) of Toont CPU-gebruik (laat zien hoe druk het is) (de kleur van de cijfers wordt geselecteerd in de vervolgkeuzelijst).

Dat is alles, het enige dat overblijft is op de knop Activeren drukken en genieten van hoe de computer, of beter gezegd, het actieve venster of de actieve applicatie, is versneld.

Lijst met nuttige opmerkingen die de moeite waard zijn om te weten

Wat is nog meer de moeite waard om te weten en te begrijpen over dit onderwerp:

  • Opmerking: op het tabblad Uitsluitingen kunt u applicaties toevoegen die u wilt uitsluiten van de lijst met applicaties die door het programma zijn geoptimaliseerd, d.w.z. het zal er geen prioriteiten aan toekennen. Gebruik hiervoor de knop Nieuw proces toevoegen en selecteer het programma dat u wilt uitsluiten;
  • Opmerking 2: op het tabblad CPU-beheer kunt u processen naar verschillende kernen distribueren (knoppen Nieuw proces toevoegen en Nieuw proces uitvoeren), dat wil zeggen, enkele kernen aan sommige programma's toewijzen, en verschillende kernen aan andere, wat in zekere zin kan prestatiewinst beïnvloeden. In principe vergelijkbaar
  • Opmerking 3: Ik ben het zelf niet tegengekomen, maar ik geef toe (hoewel onwaarschijnlijk) dat er op sommige machines problemen kunnen optreden (in de vorm van systeemvertraging) als gevolg van de keuze van een te hoge prioriteit. Probeer in dit geval de Hoge cirkel te gebruiken in plaats van Realtime.

Laten we nu verder gaan met het nawoord.

Nawoord

Hier is het probleem. Over het algemeen vond ik het programma erg leuk, omdat het erg effectief is en je in staat stelt je computer, Windows en, relatief gezien, de processor te versnellen.

Trouwens, in theorie zal de toename vooral sterk worden gevoeld door eigenaren van multi-coreprocessors, maar ook door gebruikers van de FireFox-browser (deze is processorafhankelijk en begint, wanneer hij Realtime-prioriteit krijgt, merkbaar sneller te vliegen ( vooral in een compartiment)) en iedereen die op de een of andere manier verbonden is met processorafhankelijke volwaardige applicaties (ik heb het over allerlei soorten weergaven in foto's, video's en 3D-editors).

Als u vragen heeft, kunt u deze, zoals altijd, stellen in de opmerkingen bij het artikel - ik help u graag verder.

PS: Recensies over persoonlijke gevoelens in termen van productiviteitswinst zijn niet minder interessant dan vragen;)


Wat betekent het woord ‘prioriteit’? Eh, zwak? Dit is een voorrecht, net zoals er in Egypte een hiërarchie was: farao’s en slaven, voel jij het verschil? Sommige mensen dragen stenen voor de piramides, terwijl anderen bevelen geven - democratie!))

Op dezelfde manier hebben processen prioriteiten, oh, je weet niet wat processen betekenen!

Een actief proces is elke actieve applicatie: browser, game, programma, enz. Dit is de prioriteit die ons in staat stelt alle middelen toe te wijzen om het proces te ondersteunen, of, omgekeerd, de capaciteit van het proces te beperken.

Waarom procesprioriteiten veranderen?

Laten we ons voorstellen dat u een computerspel speelt, maar een deel van de bronnen wordt in beslag genomen door andere applicaties, vooral door applicaties die ook graag consumeren.

Dus om het Windows-besturingssysteem te laten begrijpen dat alle mogelijke macht moet worden gegeven aan één enkel proces, dat wil zeggen het spel, moeten we de hoogste prioriteit geven aan dit proces (in ons voorbeeld een computerspel).

Pff, ik hoop dat je mijn punt begrijpt. Laten we het nu over het belangrijkste hebben...

Wat zijn de prioriteiten in Windows?

  • Realtime prioriteit - in feite beschouwt Windows dit proces nu als het doel van zijn aard, alle mogelijke bronnen worden alleen aan dit proces toegewezen.
  • Hoge prioriteit - Sommige bronnen gaan naar andere applicaties, maar de hoofdtaart gaat nog steeds naar één proces.
  • Bovengemiddeld – Er wordt een klein voordeel gegeven aan het geselecteerde proces.
  • Gemiddelde prioriteit - meestal hebben alle processen aanvankelijk de status 'gemiddeld', dus we kunnen zeggen dat het proces normaal werkt.
  • Laag – Windows interfereert volledig met het proces en staat niet toe dat het zichzelf in al zijn glorie laat zien.

Hoe de prioriteit wijzigen?

Ik zal het nu hebben over Windows 7, omdat dit het systeem is dat ik momenteel heb.

1. U moet op de Alt -Ctrl – D knopcombinatie drukken en er wordt een lijst geopend, u moet "taakbeheer" selecteren.

2. Als u de prioriteit van omvangrijke en zichtbare applicaties, bijvoorbeeld een browser, wilt wijzigen, moet u het tabblad "applicaties" selecteren en met de rechtermuisknop op de juiste actieve applicatie klikken en vervolgens op "ga naar proces" klikken.

3. Vervolgens zult u zien dat het vereiste proces is gemarkeerd op het tabblad Processen. Meestal heet het hetzelfde als de opgegeven applicatie zelf. Het enige wat u hoeft te doen is met de rechtermuisknop op het proces te klikken en over de prioriteit te bewegen, en dan selecteer de juiste.

Zoals al besproken, is het beter om hoge prioriteit te geven aan applicaties die veel bronnen verbruiken en die u op dit moment gebruikt - dit kan van alles zijn: games, programma's, browsers, enz.

Bedankt voor het kijken, laat een reactie achter als je vragen hebt!


zavlekyxa.ru

Procesprioriteiten beheren in Windows Vista en Windows 7

Zeker, bijna iedereen weet wat procesprioriteit is, maar als dat niet het geval is, zal ik proberen het kort uit te leggen. Dit concept is in zekere zin hetzelfde voor zowel Windows als Linux, maar ook voor sommige andere besturingssystemen. Nu zullen we het hebben over de besturingssystemen Windows Vista en Windows 7. Windows Vista en Wnidows 7, maar net als eerdere versies zijn de systemen multitasking, d.w.z. kan veel programma's parallel uitvoeren, en ook multi-threaded, maar dit is al een afwijking, of beter gezegd, een onnodige verdieping in het onderwerp. Elk programma dat in Windows wordt uitgevoerd, is een proces of meerdere processen. Voor elk proces wordt bij het starten geheugen toegewezen in het systeem en wordt er ook een standaardprioriteit ingesteld, tenzij het programma zelf de prioriteit vermeldt waarmee het moet worden gestart. Hoe hoger de prioriteit van een proces, hoe meer processortijd eraan wordt toegewezen; hoe lager de prioriteit, hoe minder processortijd aan het proces wordt toegewezen. Of, simpel gezegd: hoe hoger de prioriteit, hoe vaker en meer de processor “aandacht besteedt” aan het proces en de werking ervan, en hoe lager de prioriteit, hoe minder “aandacht besteedt”. Dit heeft dus invloed op de snelheid van uitvoering van een bepaald programma. In Windows 7 was ik aanvankelijk verrast door het feit dat in wezen puur decoratieve processen, zoals sidebar.exe (gadgets voor de desktop), precies dezelfde hoeveelheid CPU-tijd ontvangen als andere processen. Tegelijkertijd voert sidebar.exe zelf geen al te belangrijke of onnodige functies uit. Dus waarom zou het dezelfde hoeveelheid CPU-tijd besteden als bijvoorbeeld een zware resource-intensieve applicatie zoals een 3D-game of een 3D-editor met een grote scène? Op basis van deze vraag begon ik, zoals ze zeggen, te spelen met procesprioriteiten. Het belangrijkste dat ik begreep is dat het voor gebruikersprogramma's beter is om niet hoger te gaan dan de Normale prioriteit, omdat Windows Vista/7 dan de processortijd verkeerd kan verdelen en sommige belangrijke systeemprocessen zullen gaan “vertragen”. Als laatste redmiddel kunt u de prioriteit instellen op AboveNormal voor het gebruikersproces dat u nodig heeft, maar in zeer zeldzame gevallen zorgt dit voor een merkbaar verschil in de prestaties van het programma. Maar tegelijkertijd verbiedt niemand het verlagen van de prioriteit van andere, minder of minder belangrijke processen, zodat ze geen waardevolle processortijd in beslag nemen, bijvoorbeeld uit een game. Vaak kun je met dergelijke manipulaties echt 5-10FPS winnen. Een bij velen bekend nadeel is dat bij het wijzigen van de prioriteit via “Taakbeheer” deze alleen wordt opgeslagen totdat het proces is voltooid, waarna het proces opnieuw wordt gestart met de standaardprioriteit. Die. uw prioriteitsinstellingen worden niet onthouden. Hierdoor zijn er veel programma's op internet verschenen die uw prioriteitskeuze onthouden, en de volgende keer dat u het programma start, veranderen ze dit automatisch voor u. Aanvankelijk geloofde ik niet dat Windows niet een of ander hulpmiddel had om de prioriteit van een proces te beheren en te onthouden, en ik begon de documentatie op Microsoft-websites door te spitten. Ik zal geen debat beginnen over het onderwerp slechte documentatie van Windows-mogelijkheden, maar ik bleek gelijk te hebben. Voor elk proces in Windows kunt u handmatig de prioriteit en enkele andere eigenschappen opgeven waarmee het door het register wordt uitgevoerd. Pad naar de registersleutel: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\windows NT\CurrentVersion\Image Opties voor bestandsuitvoering Hoe start ik de register-editor? , typ regedit in de tekstregel en druk op Enter =) Om de prioriteit te specificeren voor het proces waarmee het altijd onmiddellijk moet starten, moet u een sectie met zijn naam maken in de bovenstaande registertak.

Maak er vervolgens nog een sectie in, d.w.z. al een subsectie met de naam PerfOptions, en maak daarin een DWORD-parameter (32 bits) genaamd CpuPriorityClass en stel deze in op een van de decimale waarden - 1, 2, 3, 5, 6.

1 - prioriteit Inactief (laag); 2 - prioriteit Normaal (gemiddeld); 3 - prioriteit Hoog (hoog); 5 - prioriteit BelowNormal (onder het gemiddelde);

6 - prioriteit BovenNormaal (bovengemiddeld);

Laten we sidebar.exe als voorbeeld bekijken.

In de registertak HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\windows NT\CurrentVersion\Image File Execution Options maak ik een sectie sidebar.exe. Daarin maak ik een subsectie PerfOptions. En in deze subsectie maak ik een DWORD-parameter (32 bits) genaamd CpuPriorityClass met een decimale waarde van 1.

Sidebar.exe zal nu dus altijd met lage prioriteit worden uitgevoerd (inactief).

Alle bovenstaande bewerkingen kunnen ook worden uitgevoerd via de opdrachtregel (cmd).

Ik heb een klein universeel batchbestand geschreven dat dit allemaal voor de gebruiker doet. Link naar het batchbestand: save_process_priority.cmd In het batchbestand zijn alle items in het Russisch geschreven. De gebruiker hoeft alleen de procesnaam in te voeren die hij nodig heeft en de prioriteit te selecteren. Om uw prioriteitsinstellingen van kracht te laten worden, moet u het proces opnieuw starten. Als u meerdere systeemprocessen tegelijk hebt geïntroduceerd, start u het systeem opnieuw op, het zal eenvoudiger zijn. Dit is nodig omdat gegevens uit het register alleen worden gelezen wanneer programma's worden geladen en gestart, maar niet terwijl ze actief zijn. Dat is alles, bedankt voor uw aandacht =) Als u een fout opmerkt, laat het mij dan weten, ik zal u zeer dankbaar zijn.

Copyright © 2011 Tsiryuta G.N.

stopgame.ru

Procesprioriteiten beheren in Windows

Laten we het hebben over de prioriteiten van Windows-processen. In de meeste gevallen is het niet nodig om te “spelen” met het stellen van prioriteiten, maar soms kan een competente systeembeheerder het systeem helpen de processortijd correcter te verdelen tussen lopende taken. Er is niet één recept, maar door “selectie en zoeken” is het heel goed mogelijk. Waar zou dit nodig kunnen zijn? In de 1C-SQL-combinatie kunt u bijvoorbeeld meer processortijd geven aan 1C en SQL, als de meest resource-kritieke processen.

Over het algemeen kunt u de prioriteit van een lopend proces bekijken en wijzigen via Taakbeheer

Windows NT/2000/7/2008

In Windows 2012 werd dit iets dieper ‘begraven’

Zoals u uit de gegeven voorbeelden kunt zien, zijn er slechts 6 prioriteiten voor u beschikbaar (zoals u later zult ontdekken, zijn dit prioriteitsklassen). Genoeg? Microsoft denkt van wel. Maar laten we de "legendarische" zin van Bill Geist onthouden, die zei dat "640 KB RAM genoeg zal zijn voor iedereen." Maar de tijd heeft geleerd dat dit verre van het geval is. :)

Laten we nu eens kijken hoe het werkelijk is.

Er zijn eigenlijk 32 prioriteitsniveaus in vensters, van 0 tot 31.

Ze zijn als volgt gegroepeerd:

  • 31 - 16 realtime niveaus;
  • 15 - 1 dynamische niveaus;
  • 0 - systeemniveau gereserveerd voor de draad van nul pagina's.

Wanneer een proces wordt gemaakt, krijgt het een van de zes prioriteitsklassen toegewezen:

  1. Realtimeklasse (waarde 24),
  2. Hoge klasse (waarde 13),
  3. Boven normale klasse (waarde 10),
  4. Normale klasse (waarde 8),
  5. Beneden normale klasse (waarde 6),
  6. of Inactieve klasse (waarde 4).

U kunt de procesprioriteit bekijken, zoals hierboven beschreven, met behulp van Taakbeheer.

De prioriteit van elke thread (basisthreadprioriteit) is de som van de prioriteit van het proces en de relatieve prioriteit van de thread zelf. Er zijn zeven relatieve threadprioriteiten:

  1. Normaal: hetzelfde als het proces;
  2. Boven normaal: +1 voor procesprioriteit;
  3. Beneden normaal: -1;
  4. Hoogste: +2;
  5. Laagste: -2;
  6. Tijdkritisch: stelt de basisthreadprioriteit voor de Realtime-klasse in op 31, voor andere klassen op 15.
  7. Inactief: stelt de basisthreadprioriteit voor de Realtime-klasse in op 16, voor andere klassen op 1.

De volgende tabel toont de proces-, relatieve en basisthreadprioriteiten.

Onderwerpprioriteit Proces klasse Proces klasse
Inactieve klas Beneden de normale klasse Normale klasse Boven normale klasse Hoge klasse Realtime les
1 Inactief Inactief Inactief Inactief Inactief
2 Laagste
3 Onderstaand...
4 Inactieve klas Normaal Laagste
5 Boven... Onderstaand...
6 Beneden de normale klasse Hoogste Normaal Laagste
7 Boven... Onderstaand...
8 Normale klasse Hoogste Normaal Laagste
9 Boven... Onderstaand...
10 Boven normale klasse Hoogste Normaal
11 Boven... Laagste
12 Hoogste Onderstaand...
13 Hoge klasse Normaal
14 Boven...
15 Hoogste
15 Tijdkritisch Tijdkritisch Tijdkritisch Tijdkritisch Tijdkritisch
16 Inactief
17
18
19
20
21
22 Laagste
23 Onderstaand...
24 Realtime les Normaal
25 Boven...
26 Hoogste
27
28
29
30
31 Tijdkritisch

Nu we dit allemaal weten, wat kunnen we eraan doen? Begin bijvoorbeeld met gebruiken.

Hoe kun je anders een proces met een “niet-standaard” prioriteit uitvoeren of wijzigen?

Methode 1. Start een taak/proces en wijzig de prioriteit via Taakbeheer.

Nadelen van de methode:

  • Er zijn slechts 6 prioriteiten beschikbaar
  • Het wisselen van prioriteiten gebeurt met de muis en is niet geautomatiseerd.

Methode 2. U kunt het START-commando gebruiken met de juiste toetsen

De beschikbare sleutels die verantwoordelijk zijn voor prioriteiten zijn de volgende (ik laat met opzet de opdrachtregeltoetsen van het START-commando weg die geen verband houden met het beschreven proces van werken met prioriteiten):

C:\>start /? Start een apart venster om een ​​specifiek programma of commando uit te voeren. BEGIN ["titel"]

LAAG Start de toepassing in de prioriteitsklasse IDLE.

NORMAL Start de toepassing in de prioriteitsklasse NORMAL. HIGH Start applicatie in de HIGH prioriteitsklasse. REALTIME Start de applicatie in de REALTIME prioriteitsklasse. BOVENORMAL Start de toepassing in de prioriteitsklasse BOVENORMAL. BELOWNORMAL Start de toepassing in de prioriteitsklasse BELOWNORMAL.

Zoals u kunt zien, maakt het START-commando het mogelijk om een ​​proces te starten met dezelfde 6 prioriteiten die beschikbaar zijn via Taakbeheer

Nadeel van de methode:

  • Er zijn slechts 6 prioriteiten beschikbaar

Methode 3: Het hulpprogramma wmic.exe gebruiken

Zoals hierboven weergegeven, zijn Taakbeheer en het START-commando behoorlijk onhandig voor het toewijzen van prioriteiten. Laten we eens kijken hoe we dit flexibeler kunnen gebruiken. We zullen het hulpprogramma wmic.exe gebruiken.

Commandoregel:

wmic-proces waarbij naam = "AppName" CALL setpriority ProcessIDLevel

wmic-proces waarbij naam = "calc.exe" CALL setpriority 32768

wmic-proces waarbij naam = "calc.exe" CALL setpriority "boven normaal"

Prioriteiten (vooraf gedefinieerd):

  • inactief: 64
  • beneden normaal: 16384
  • normaal: 32
  • boven normaal: 32768
  • hoge prioriteit: 128
  • realtime: 256

Hier is een kort voorbeeld van het uitvoeren van wmic.exe om de benodigde informatie te verkrijgen

Wij gebruiken het commando:

wmic-proceslijst kort

U krijgt een lijst met processen die op uw lokale computer worden uitgevoerd. Voer nu het commando uit:

wmic proceslijst kort | zoek "cmd.exe"

Resultaat:

Ik heb speciaal verschillende exemplaren van cmd.exe gelanceerd om de illustratie completer te maken.

Nu is de lijst met processen alleen beperkt tot die processen waarvan de uitvoerbare modulenaam de string “cmd.exe” bevat. Let op de PID van het proces(sen).

Laten we nu proberen de processen waarin we geïnteresseerd zijn te selecteren door WMI rechtstreeks te gebruiken en zonder toevlucht te nemen tot standaard opdrachtregelprogramma's. Om dit te doen, schrijft u eenvoudig:

wmic-proces waarbij de beschrijving = "cmd.exe" kort is

Resultaat:

Vergelijk uw resultaten. Onthoud de PID van het CMD.EXE-proces.

Commandoregel om wmic.exe uit te voeren

wmic-proces waarbij processid = "XXXX" CALL setpriority ProcessIDLevel

Welnu, nu kunnen we de prioriteit van een specifiek proces wijzigen (bijvoorbeeld met PID=8476):

wmic-proces waarbij processid = "8476" CALL setpriority 32768

wmic-proces waarbij processid = "8476" CALL setpriority "boven normaal"

winitpro.ru

De prestaties van Windows 7 afstemmen en verbeteren.

De snelheid van een computer is voor iedere gebruiker in meer of mindere mate interessant. Om het meeste uit Windows 7 te halen, kunt u een aantal bekende methoden gebruiken, zowel de eenvoudigste als de meest complexe voor de gemiddelde gebruiker.

In dit artikel zullen we kijken naar methoden voor het handmatig afstemmen van het systeem, en zullen we geen toevlucht nemen tot speciale programma's die zijn ontworpen om de systeemprestaties te verbeteren.

Opstarten schoonmaken

Veel programma's die u installeert, worden toegevoegd aan het opstarten wanneer Windows start. Ze starten automatisch wanneer u de computer aanzet. Door de lijst met deze programma's te controleren en de programma's te verwijderen die u niet vaak gebruikt (of helemaal niet gebruikt), kunt u uw systeem versnellen.

Om dit te doen, moet u de tool voor systeemconfiguratiebeheer uitvoeren:

Start -> Configuratiescherm -> Systeem en beveiliging -> Systeembeheer -> Systeemconfiguratie

of voer de waarde in "

msconfig" en druk op Enter.

Op het tabblad Opstarten vindt u alle programma's die automatisch starten wanneer Windows start, en u kunt de programma's verwijderen die u niet nodig hebt. Dit kan ook handmatig worden gedaan door de bijbehorende waarden uit het systeemregister te verwijderen. De lijst met programma's die worden opgestart, bevindt zich in de volgende registervertakkingen:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\windows\CurrentVersion\Run

HKEY_CURRENT_USER\Software\Microsoft\windows\CurrentVersion\Run

Onnodige services uitschakelen (services)

Het uitschakelen van onnodige of zelden gebruikte services zal een deel van de RAM-belasting verlichten, waardoor andere applicaties sneller kunnen werken. Voordat u services uitschakelt, raden we u aan een systeemherstelpunt te maken in geval van complicaties (vooral voor onervaren gebruikers): Configuratiescherm -> Systeem -> Systeembeveiliging -> Maken... De lijst met services is dus hier: Start - > Configuratiescherm -> Systeem en beveiliging -> Systeembeheer -> Services

Hier kunt u weinig gebruikte services uitschakelen. Het volgende kan veilig worden uitgeschakeld:

· Invoerservice voor tablet-pc's · Computerbrowser · IP-assistentieservice · Register op afstand · Assistent-services voor programmacompatibiliteit (gevorderde gebruikers)

Procesprioriteit instellen

Om actieve applicaties sneller te laten werken, moet u ze een hogere prioriteit geven dan achtergrondprocessen. In dit geval krijgen actieve applicaties meer processortijd toegewezen. Standaard is het systeem op deze manier geconfigureerd, maar de balans tussen bronnen voor actieve en achtergrondprocessen kan nog verder worden verschoven. De waarde die hiervoor verantwoordelijk is, is Win32PrioritySeparation, die zich bevindt in de registersleutel HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\PriorityControl. Om het systeemregister te openen, typt u regedit op de opdrachtregel.

De standaard hexadecimale waarde is 2 (hex) De aanbevolen waarde is 6 (hex) Bereik van geldige waarden: van 1 tot 26 (hex)

U kunt andere waarden proberen om uw systeem zo veel mogelijk te versnellen. Let op: u kunt de waarde 0 niet gebruiken, uw computer loopt direct vast!

Naast het wijzigen van de algehele balans van processorbronnen, kunt u een hogere prioriteit instellen voor individuele programma's. Dit kunt u doen via Taakbeheer.

Soms is dit handig. Als een programma bijvoorbeeld een zeer lange bewerking uitvoert en u wilt dat dit sneller gebeurt, kan het helpen om het een hogere prioriteit te geven.

Prestatieopties wijzigen

Met het Windows 7-besturingssysteem kunt u enkele instellingen configureren die het systeem kunnen versnellen. Om het dialoogvenster Interactieopties te openen, gaat u hier: Start -> Configuratiescherm -> Systeem en beveiliging -> Systeem -> Geavanceerde systeeminstellingen -> Instellingen (op het tabblad Geavanceerd).

Hier, op het tabblad Visuele effecten, kunt u Start-menu-animaties, Aero Peek, venstertransparantie en andere opties uitschakelen. Als u de optie "Zorg voor de beste prestaties" selecteert, worden alle visuele Aero-effecten van Windows uitgeschakeld en werkt het systeem sneller. U offert echter al het moois op dat Windows 7 ons biedt.

Aero Peek-versnelling

Aero Peek is een functie die alle vensters transparant maakt als u met uw muis over het kleine vierkantje rechts van de klok beweegt. Om de responstijd van deze functie te verkorten, moet u de DWORD-sleutel DesktopLivePreviewHoverTime wijzigen. Deze bevindt zich in de registersleutel HKEY_CURRENT_USER\Software\Microsoft\windows\CurrentVersion\Explorer\Advanced

Als een dergelijke sleutel niet in een bepaalde vertakking voorkomt, moet u deze aanmaken en vervolgens eenvoudigweg de waarden ervan wijzigen. Een decimale waarde van 1000 is gelijk aan een vertraging van één seconde, 500 is gelijk aan een halve seconde, enzovoort.

Gebruikersaccountbeheer (UAC) uitschakelen

Gebruikersaccountbeheer (UAC) informeert de gebruiker over wijzigingen in het systeem waarvoor beheerdersrechten vereist zijn. Deze dienst geeft meldingen weer wanneer u een nieuw programma probeert te installeren, wanneer er wijzigingen worden aangebracht in het bestandssysteem, enz. Dit kan handig zijn voor beginners, maar is vaak frustrerend voor ervaren gebruikers. Om meldingen van Gebruikersaccountbeheer uit te schakelen, moet u het volgende doen:

· Voer Systeemconfiguratie uit (“msconfig” zonder aanhalingstekens op de opdrachtregel). · Ga naar het tabblad “Services” en zoek het item “Instellingen Gebruikersaccountbeheer” in de lijst. · Selecteer dit item en klik op de knop “Uitvoeren”. · Er wordt een dialoogvenster geopend waarin u de schuifregelaar kunt gebruiken om de uitgifte van meldingen aan te passen.

De aangebrachte wijzigingen worden geactiveerd nadat de computer opnieuw is opgestart.

mijndiv.net

Hoe u de prioriteit van actieve programma's kunt wijzigen

Tijdens het gebruik lost de computer veel problemen tegelijkertijd op. Overigens is dit niet helemaal waar, de processor schakelt eenvoudigweg tussen verschillende taken, voert applicaties uit en voert ze één voor één uit. Dit gebeurt zo snel dat het de indruk wekt van gelijktijdig werken. De programma's die de computer belangrijker vindt, krijgen een hogere prioriteit dan andere, en daarom wordt aan dergelijke programma's meer processortijd toegewezen. Normaal gesproken wordt de basisprioriteit gespecificeerd door de programmacode. Het prioriteitsniveau wordt bepaald door de parameters: realtime, hoog, bovengemiddeld, gemiddeld, ondergemiddeld en laag. Met behulp van Taakbeheer kan de gebruiker de basisprioriteit van een reeds actief programma indien nodig wijzigen als hij van mening is dat het programma meer CPU-tijd moet krijgen. Of verlaag de prioriteit in een situatie waarin, wanneer meerdere applicaties tegelijkertijd draaien, bepaalde programma's die veel hulpbronnen gebruiken te veel processortijd in beslag nemen, waardoor de uitvoering van andere processen wordt vertraagd. Deze door de gebruiker aangebrachte wijzigingen zijn alleen van kracht gedurende de duur van het lopende proces. De volgende keer dat het proces wordt gestart, wordt het uitgevoerd op de basisprioriteitwaarde. Om de prioriteit te wijzigen, moet u Taakbeheer openen door met de rechtermuisknop in het taakbalkgebied te klikken en het volgende te selecteren: Ga naar het tabblad "Processen" en markeer de naam van het proces dat u wilt wijzigen. Klik vervolgens met de rechtermuisknop op dit proces, selecteer “Prioriteit” in het menu en geef een ander prioriteitsniveau op. Houd er rekening mee dat het uitvoeren van programma's met hoge prioriteit de systeemprestaties kan verminderen, omdat andere actieve programma's minder tijd zullen hebben voor I/O-bewerkingen.

tipskettle.blogspot.ru

7 antwoorden

Een real-time prioriteitsthread kan nooit worden voorkomen door timer-interrupts en heeft een hogere prioriteit dan welke andere thread op het systeem dan ook. Omdat een dergelijke CPU-gebonden real-time prioriteitsthread de machine volledig kan vernietigen.

Voor het maken van realtime prioriteitsthreads is een privilege vereist (SeIncreaseBasePriorityPrivilege), dus dit kan alleen door een beheerder worden gedaan.

Voor Vista en hoger is een optie voor toepassingen die vereisen dat ze in realtime prioriteit worden uitgevoerd, het gebruik van de Multimedia Class Scheduler Service (MMCSS) en laat deze de prioriteit van uw threads beheren. MMCSS voorkomt dat uw applicatie te veel CPU-tijd gebruikt, zodat u zich geen zorgen hoeft te maken over het tanken van de machine.

Het is alleen zo dat de prioriteitsklasse "Real Time" hoger is dan de prioriteitsklasse "Hoge". Ik denk niet dat er veel meer is. Oh ja, je moet SeIncreaseBasePriorityPrivilege hebben om de thread in de Real Time-klasse te plaatsen.

Windows verhoogt soms om verschillende redenen de prioriteit van een thread, maar verhoogt niet de prioriteit van een thread in een andere prioriteitsklasse. Het zal ook de prioriteit van threads in de real-time prioriteitsklasse niet verhogen. Een thread met hoge prioriteit zal dus geen automatische tijdelijke promotie naar de realtime prioriteitsklasse ontvangen.

Het hoofdstuk "Inside Windows" van Russinovich over hoe Windows omgaat met prioriteiten is een geweldige bron om te leren hoe het werkt:

Merk op dat er absoluut geen problemen zijn als een thread real-time prioriteit heeft op een normaal Windows-systeem - ze zijn niet nodig voor speciale processen die op speciale machines draaien. Ik ben van mening dat mediastuurprogramma's en/of processen real-time prioriteitsthreads vereisen. Een dergelijke thread zou echter niet veel CPU moeten vereisen; hij zou het grootste deel van de tijd moeten blokkeren, zodat normale systeemgebeurtenissen kunnen worden verwerkt.

Dit is de instelling met de hoogste prioriteit die beschikbaar is en wordt doorgaans alleen gebruikt in het veld dat bedoeld is om dat specifieke programma uit te voeren. Het is eigenlijk zo hoog dat het toetsenbord- en muisdraden kan uithongeren tot het punt waarop ze niet meer reageren.

Dus als je het moet vragen, gebruik het dan niet :)

In realtime is dit de hoogste prioriteitsklasse die beschikbaar is voor het proces. Daarom verschilt het van "Hoog" doordat het één stap groter is, en van "Boven Normaal" doordat het twee stappen groter is.

Op dezelfde manier is er in realtime ook een threadprioriteitsniveau.

De prioriteitsklasse van een proces verhoogt of verlaagt alle effectieve prioriteiten van threads in een proces en wordt daarom beschouwd als de "basisprioriteit".

Het proces heeft dus:

  • Basisprocesprioriteitklasse.
  • Individuele threadprioriteiten, offsets van de basisprioriteitklasse.

Omdat er van real-time applicaties een back-up moet worden gemaakt en deze absoluut voorrang moeten hebben op andere lopende processen, is er een speciaal beveiligingsprivilege om te beschermen tegen onbedoeld gebruik ervan. Dit wordt bepaald door het veiligheidsbeleid.

Op NT6+ (Vista+) is het gebruik van de Vista Media Class Scheduler de juiste manier om real-time bewerkingen te realiseren op een niet-live besturingssysteem. Het werkt voor het grootste deel, hoewel het niet perfect is, omdat het besturingssysteem niet is ontworpen voor realtime bewerkingen.

Microsoft vindt deze prioriteit zeer gevaarlijk, en terecht. Geen enkele applicatie zou er gebruik van moeten maken, behalve in bijzondere omstandigheden, en zelfs dan moeten ze proberen het gebruik ervan te beperken tot tijdelijke behoeften.

Zodra Windows weet dat een programma een hogere prioriteit gebruikt, lijkt het de prioriteit van het proces te beperken.

Het instellen van de prioriteit van IDLE naar REALTIME verandert het CPU-gebruik NIET.

Ik ontdekte op mijn AMD-multiprocessor dat als ik een van de CPU's als LAATSTE laat vallen, het CPU-gebruik MAX OUT zal zijn en de laatste CPU inactief zal blijven. De CPU-snelheid neemt tot 75% toe op mijn Quad AMD.

Gebruik Taakbeheer -> selecteer proces->Klik met de rechtermuisknop op proces->Selecteren->Affiniteit instellen Klik op alles behalve de laatste processor. Het CPU-gebruik zal toenemen tot MAX op de resterende processors en het aantal frames als de videoverwerking toeneemt.