Интерпретатор Python только с помощью 12%-й мощности ЦП

Я использую Python на человечности для анализа текста. Несмотря на серьезный объем работы программа делает, использование ЦП как показано в системном мониторе последовательно остается в 12%.

Я изменил приоритет программы от Normal кому: Very High но это не имело никакого эффекта.

Что ограничивает объем использования ЦП, которое может получить моя программа Python и как я могу изменить это, таким образом, программа может использовать больше мощности ЦП?

26
задан 24 August 2017 в 06:33

2 ответа

Я предполагаю, что у Вас есть ЦП с 8 виртуальными ядрами (четырехъядерный с гиперпоточностью, вероятно)? Это означает, что тот полностью загрузил поток ЦП/, виртуальное ядро равняется общей нагрузке на 12,5%.

интерпретатор Python является приложением, которое только работает как один единственный процесс по умолчанию и поэтому не в состоянии использовать в своих интересах больше чем одно виртуальное ядро. Даже если код, Вы выполняете с ним многопоточность использования, это будет все еще только использовать один поток ЦП / виртуальное ядро, из-за GIL (глобальная блокировка интерпретатора) .

, Только если Ваша программа Python использует многопроцессорная обработка , который на самом деле запускает несколько экземпляров интерпретатора Python и позволяет им выполнить Ваши действительно параллельные задачи, можно использовать в своих интересах несколько виртуальных ЯДЕР/ПОТОКОВ ЦП. (Как @SargeBorsch указанный в его комментарии, существуют также некоторые усовершенствованные способы достигнуть этого без многопроцессорной обработки, но это обычно - не что-то, что Вы быстро пишете сами.)

73
ответ дан 23 November 2019 в 01:06

Другая возможность, менее вероятно в этом случае, состоит в том, что программа ограничена диском, т.е. она читает и пишет в диск, который является медленным, и ЦП ожидает диска.

19
ответ дан 23 November 2019 в 01:06

Другие вопросы по тегам:

Похожие вопросы: