Я использую Python 2.7 + win32com для запуска некоторых скриптов, автоматизирующих Adobe InDesign через интерфейс COM. Операционная система - Windows 10, работающая на хосте VMWare ESXi.
У меня очень низкая производительность, иногда интерпретатор Python зависает на вызовах COM на несколько секунд. Я проверил это, реализовав поток монитора, который периодически проверяет трассировку стека основного потока, чтобы убедиться, что выполнение программы застряло.
Я успешно использовал один и тот же стек (Python 2.7 + win32com + Adobe InDesign) (т. Е. Время отклика COM, измеряемое в миллисекундах или не более чем десятые доли секунды, а не целые секунды) в различных других комбинациях версий Windows и сред виртуализации.
Я не могу точно определить, где находится узкое место. Я подозреваю:
- операционная система замедляет связь COM
- приложение InDesign замедляет связь COM
- среда виртуализации замедляет коммуникацию COM
- Это совсем не о COM. Что касается 1, я попытался отключить брандмауэр Windows, антивирус Защитника Windows, Cortana и настроил параметры экрана Windows для более быстрой работы. Нет заметных изменений.
Что касается 2, я понятия не имею, но не понимаю, почему InDesign (последняя версия CC) намеренно замедляет обмен данными.
Что касается 3 и 4, я открыт для предложений.
Загрузка ЦП и памяти как виртуальной ОС, так и хост-системы все время кажется низкой.
Это звонит кому-нибудь? Любой намек на то, как выяснить, где находится узкое место, будет высоко оценен.
Я не COM и не эксперт по Windows. Я просто пытаюсь запустить некоторые сценарии, автоматизировать некоторые утомительные задачи.