Ajuste a prioridade de um processo por Nome Automático, em Vista
O outro dia eu estava jogando ao redor com Opções da execução da lima da imagem e Sysinternals' Monitor Process, em Vista. Eu vi uma pergunta interessante ocorrer. Usando notepad.exe como um exemplo, eu vi uma pergunta para uma chave chamada “PerfOptions” em [HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows NT \ CurrentVersion \ opções da execução lima da imagem \ notepad.exe] quando eu funcionei o notepad. O resultado era NÃO ENCONTRADO CONHECIDO, assim que eu decidi-me retificar aquele. Após ter adicionado uma chave nomeada “PerfOptions”, eu funcionei o notepad outra vez. No monitor Process, eu vi perguntas para quatro valores:
- IoPriority
- PagePriority
- CpuPriorityClass
- WorkingSetLimitInKB
Por causa das explorações recentes com priorities* process, CpuPriorityClass agarrou-me direito - afastado. Olhar SetPriorityClass a função, uma pode ver os valores diferentes para o parâmetro dos dwPriorityClass. Eu criei um CpuPriorityClass nomeado REG_DWORD em PerfOptions, e ajustei o valor a 0×80 nas esperanças que o notepad lançaria com o “HIGH_PRIORITY_CLASS”. Instead, lançou-se com uma prioridade de NORMAL_PRIORITY_CLASS (8) - que o ajuste não tinha feito algum impacto. Então, eu ajustei o valor a 8 e lancei o notepad. O Notepad lançou-se com uma prioridade de 8. Eu mudei o valor a 4, e aquele não teve nenhum impacto. Eu mudei o valor a 0 - nenhum impacto. Eu tentei 10 - nenhum impacto. Eu não poderia ver nenhum laço dentro a nenhumas outras listas das prioridades process que eu soube aproximadamente, assim que eu decidi-me tentar a experimentação e o erro, partindo de 0, com os seguintes resultados:
| Valor de CpuPriorityClass | Prioridade do Notepad | Classe da prioridade |
| 1 | 4 | Idle |
| 3 | 13 | Elevado |
| 5 | 6 | BelowNormal |
| 6 | 10 | AboveNormal |
| Qualquer outra coisa ^ | 8 | Normal |
^= eu estou funcionando atualmente a PowerShell certificado a iterar com todos os valores possíveis (há somente sobre 2^32…) assim puder ser um quando antes do valor de CpuPriorityClass para REALTIME_PRIORITY_CLASS, se existir, esteja descoberto. Pode também haver outros valores que podem ser usados especificar uma classe da prioridade que seja descoberta. Eu atualizarei ou afixarei um tópico novo se eu descobrir qualquer coisa novo…
O certificado de PowerShell (não ria, ele é minha primeira tentativa substancial em uma):
hklm de $cpc=0set-itemproperty “: softwaremicrosoftwindows cpupriorityclass $cpcdo da execução lima ntcurrentversionimage optionsnotepad.exeperfoptions” { $pp = [diagnostics.process]:: comece (” notepad.exe”, “”) $ppc = $pp.PriorityClass $pp. Matança () se ($ppc - ne “Normal”) { Escrev-Anfitrião $cpc $ppc } $cpc++ ajuste-itemproperty o “hklm: softwaremicrosoftwindows cpupriorityclass $cpc da execução lima ntcurrentversionimage optionsnotepad.exeperfoptions”} quando ($cpc - tenente 4294967295)
Esperançosamente, eu encontrarei a hora de fazer algum que escavo nos outros valores em PerfOptions - em IoPriority, em PagePriority, e em WorkingSetLimitInKB. Som de IoPriority e de PagePriority como podem ter algo fazer com prioritization da memória e Prioritization do IO em 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: 5%
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?