WPF - Baixo desempenho quando o processo é executado na conta SYSTEM
Eu tenho um aplicativo WPF que geralmente está sendo executado em uma conta de usuário local com direitos de administrador. No entanto, em certos cenários, o processo é iniciado por um serviço ou script que está sendo executado emSYSTEM
portanto, o processo também está sendo executado sob aSYSTEM
conta.
O problema é que, quando o processo está sendo executado emSYSTEM
conta, existem alguns atrasos visíveis (a interface do usuário não responde muito bem).
Fiz algumas escavações usando perfmon e não vi nada suspeito (a CPU não está sobrecarregada, nenhuma exceção incomum é lançada, nenhum vazamento de memória, etc ...). Também verifiquei o log de eventos e não encontrei nada útil (sem avisos / erros, apenas informações não relacionadas ao sistema).
Eu primeiro pensei que era devido ao processo ser executado em um contexto de representação, mas mesmo sem representação (eu useiPsExec.exe -i -s
para iniciá-lo na conta SYSTEM), os atrasos ainda persistem.
Alguma idéia de onde isso viria?
Não hesite em perguntar se você precisa de mais informações. Estou procurando algumas idéias que ajudariam a encontrar a causa raiz (a solução óbvia para isso é não iniciar o processo na conta SYSTEM, mas não é realmente uma correção).
Além disso, observe que o aplicativo está sendo executado em uma versão personalizada do Windows Embedded Standard (XP SP3) e em um dispositivo com uma tela de toque capacitiva.
Minha perguntaMinha pergunta não é "como posso resolver esse problema?" mas "por que o aplicativo está sendo executado com baixo desempenho quando está na conta SYSTEM.
Atualização 1Tentei alterar as configurações de otimização de desempenho do Windows, como sugeriu o @Sander, nada mudou (http://support.microsoft.com/kb/308417)
Atualização 2Eu também fiz um teste usando este aplicativo:http://www.kynosarges.org/WpfPerformance.html#Application
Ao executar o aplicativo em cada conta, eu sempre recebo o tempo de execução duas vezes mais na conta SYSTEM do primeiro teste GDI + (basicamente desenha um monte de triângulos), o que me leva a pensar que isso não é estritamente limitado pelo WPF. Mais uma vez, não alterei nada, exceto a conta na qual o processo é executado.