Como depurar chamadas lentas do Windows COM

0

Estou usando o Python 2.7 + win32com para executar alguns scripts que automatizam o Adobe InDesign através da interface COM. O sistema operacional é o Windows 10, executado dentro de um host VMWare ESXi.

Estou tendo um desempenho muito lento, com o interpretador Python preso nas chamadas COM às vezes por segundos. Verifiquei isso implementando um thread de monitor que verifica periodicamente o rastreio da pilha de thread principal, para ver se a execução do programa está travada.

Eu usei a mesma pilha (Python 2.7 + win32com + Adobe InDesign) com sucesso (ou seja, tempos de resposta COM mensuráveis em milissegundos ou no máximo em décimos de segundo) em várias outras combinações de versões do Windows e ambientes de virtualização .

Não consigo identificar onde está o gargalo. Eu suspeito:

  1. o sistema operacional está diminuindo a comunicação COM
  2. a aplicação InDesign está a abrandar a comunicação COM
  3. o ambiente de virtualização está diminuindo a comunicação COM
  4. Não é sobre a COM Quanto a 1, tentei desativar o Firewall do Windows, o Windows Defender Antivirus, Cortana e configurei as Configurações de Vídeo do Windows para um desempenho mais rápido. Nenhuma mudança perceptível.

Quanto a 2, não tenho ideia, mas não vejo por que o InDesign (a versão mais recente do CC) deva propositalmente desacelerar a comunicação.

Quanto a 3 e 4, estou aberto a sugestões.

A utilização da CPU e da memória do sistema operacional virtual e do sistema host parece baixa o tempo todo.

Isso toca alguma coisa para alguém? Qualquer dica sobre como descobrir onde é o gargalo seria muito apreciada.

Não sou especialista em COM nem em Windows. Eu só estou tentando fazer alguns scripts, para automatizar algumas tarefas tediosas.

    
por Stefano Masini 13.09.2018 / 10:14

0 respostas