виртуальный сервер 2016 (VM1) размещен на сервере 2016 (HOST), учитывая все 24 процессора от хоста до VM1 и отсутствие ограничений процессора на ресурсы (может принимать 100%).
запущено 24 экземпляра с 24 тестовые процессы, которые выполняют только строковые операции: ЦП увеличивается примерно до 100%.
, но выполняется 24 экземпляра программы, которая только сначала создает экземпляр winword
app=CreateObject("Winword.Application");
docs=app.Documents;
, а затем в бесконечный l oop загрузка и освобождение документа
_doc= _docs.Open(
FileName:= _src_File,
ConfirmConversions:= false,
ReadOnly:= True,
AddToRecentFiles:= false
)
_doc.Saved= true
_doc.Close(
SaveChanges:= false,
RouteDocument:= false
)
тогда общее максимальное использование ЦП не превышает 20%.
В мониторе ресурсов максимальная частота ЦП составляет около 80% (с в другой тестовой программе до 105%).
Во вкладке dis c длина очереди порядка 0,2, не более. Но я также тестировал все C -Partition полностью в RAM-диске c, но только с небольшим эффектом.
Тестовый документ (скопированный под разные имена для каждого процесса) имеет размер 31 КБ и только текст , без ссылок, без изображения. В Winword все надстройки отключены. Среднее время загрузки документа в каждом потоке составляет около 3 секунд.
(не будет никакой разницы, если это будет многопроцессорность или многопоточность с 24 экземплярами)
пожалуйста, почему можно ' t Я увеличиваю загрузку процессора более чем на 20%? что делает winword? похоже, что winword спит 80% времени. 32 ГБ оперативной памяти, RAM-диск, все процессоры, никаких других приложений, работающих на HOST или VM1, без антивирусного сканера - пожалуйста, где может быть узкое место?