Stabilisca automaticamente la priorità di un processo per nome, in Vista
L'altro giorno stavo giocando intorno con Opzioni di esecuzione della lima di immagine e Sysinternals' Video trattato, in Vista. Ho visto una domanda interessante avvenire. Usando notepad.exe come esempio, ho visto una domanda per una chiave chiamata “PerfOptions„ in [HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows NT \ CurrentVersion \ opzioni \ notepad.exe di esecuzione lima di immagine] quando ho fatto funzionare il notepad. Il risultato era NON TROVATA NOMA, in modo da ho deciso rettificare quello. Dopo la aggiunta della chiave chiamata “PerfOptions„, ho fatto funzionare ancora il notepad. In video trattato, ho visto le domande per quattro valori:
- IoPriority
- PagePriority
- CpuPriorityClass
- WorkingSetLimitInKB
A causa delle esplorazioni recenti con priorities* trattato, CpuPriorityClass lo ha afferrato subito. Guardando SetPriorityClass la funzione, una può vedere i valori differenti per il parametro dei dwPriorityClass. Ho generato un CpuPriorityClass chiamato REG_DWORD in PerfOptions ed ho regolato il valore a 0×80 nelle speranze che il notepad lancerebbe con “HIGH_PRIORITY_CLASS„. Invece, ha lanciato con una priorità di NORMAL_PRIORITY_CLASS (8) - che regolazione non aveva avuto qualsiasi effetto. Allora, ho regolato il valore a 8 ed ho lanciato il notepad. Il Notepad ha lanciato con una priorità di 8. Ho cambiato il valore a 4 e quello non ha avuto effetto. Ho cambiato il valore a 0 - nessun effetto. Ho provato 10 - nessun effetto. Non potrei vedere alcun legame dentro ad alcuni altri elenchi delle priorità trattate che ho conosciuto circa, in modo da ho deciso provare la prova e l'errore, a partire da 0, con i seguenti risultati:
| Valore di CpuPriorityClass | Priorità del Notepad | Codice categoria di priorità |
| 1 | 4 | Idle |
| 3 | 13 | Alto |
| 5 | 6 | BelowNormal |
| 6 | 10 | AboveNormal |
| Niente altro ^ | 8 | Normale |
^= attualmente sto facendo funzionare la a PowerShell scritto da ripetere con tutti i valori possibili (ci è soltanto circa 2^32…) così può essere un istante prima del valore di CpuPriorityClass per REALTIME_PRIORITY_CLASS, se esiste, sia scoperto. Ci possono anche essere altri valori che possono essere usati per specificare un codice categoria di priorità che è scoperto. Aggiornerò o invierò un nuovo soggetto se scopro qualche cosa nuovo…
Lo scritto di PowerShell (non rida, esso è il mio primo tentativo notevole ad uno):
hklm di $cpc=0set-itemproperty “: softwaremicrosoftwindows ntcurrentversionimage lima cpupriorityclass $cpcdo di esecuzione optionsnotepad.exeperfoptions„ { $pp = [diagnostics.process]:: inizi („ notepad.exe„, “„) $ppc = $pp.PriorityClass $pp. Uccisione () se ($ppc - Ne “normale„) { Scriv-Ospite $cpc $ppc } $cpc++ regoli-itemproperty “il hklm: softwaremicrosoftwindows ntcurrentversionimage lima cpupriorityclass $cpc di esecuzione optionsnotepad.exeperfoptions„} mentre ($cpc - tenente 4294967295)
Eventualmente, troverò il tempo di fare alcuno che scavo negli altri valori in PerfOptions - in IoPriority, in PagePriority e in WorkingSetLimitInKB. Suono di PagePriority e di IoPriority come possono avere qualcosa fare con prioritization di memoria e Prioritization di IO in Vista. WorkingSetLimitInKB sounds self-explanatory, but how it’s applied or how it’s used, and other circumstances, are quite vague.
*= SetThreadPriority, Vista, and Autostart Locations, Setting the Priority of a Service Process via Script
Popularity: 2%
Written by «/\/\Ø|ö±ò\/»®©. Read more great feeds at is source WEBSITE
1 comment.
Read more articles on otherSoftware and Process Monitor and priority and sysinternals and PowerShell and vista.
- [+] Digg: Feature this article
- [+] Del.icio.us: Bookmark this article
- [+] Furl: Bookmark this article















#1. January 31st, 2008, at 8:40 AM.
does this work for other os like XP or server 2003?