У меня есть COM, написанный в Delphi 101 Berlin. И я пишу сценарий для вызова его API (только один API, однопоточный, и каждый занимает около 1 минуты, чтобы закончить).Как ОС может использовать все ядра для моего приложения?
Я запускаю файл vbs с помощью cscript.exe (64-разрядный) (и я использую simple job runner here), много копий (так много процессов), в то же время.
Тем не менее, я тестировал на многих ПК (Windows 10 Pro), и наблюдается, что работает только примерно 1 ядро, несмотря на то, что у многих из них много ядер.
Например, на моих двух ЦП (HPZ800 Intel Xeon X5650, 6 ядер каждый = 12 ядер) используется только 1 ядро.
Если некоторые сценарии выходят рано, то остальное использование ЦП будет улучшено, но все вместе суммируются не более чем на 1 ядро.
Мой вопрос, как написать код, чтобы извлечь выгоду из нескольких ядер?
Вы говорите: «Я запускаю файл VBS с помощью cscript.exe ... много копий (так много процессов)». У вас есть доказательства того, что cscript.exe существует много процессов, которые разворачиваются/порождаются? Кажется довольно ясным, что ваш проект работает как однопоточный процесс. –
, как вы можете видеть на снимке экрана, в моем приложении много копий cscript.exe (процессов), однопоточное. –
Кроме того, только потому, что выполняется много процессов, это не означает, что вы будете максимизировать свои процессоры. Это зависит от характера процесса. Если каждый процесс просто выполняет сон() в течение 60 секунд, вы можете иметь тысячи из них, не беспокоя свой процессор вообще. –