Я использую Python на человечности для анализа текста. Несмотря на серьезный объем работы программа делает, использование ЦП как показано в системном мониторе последовательно остается в 12%.
Я изменил приоритет программы от Normal
кому: Very High
но это не имело никакого эффекта.
Что ограничивает объем использования ЦП, которое может получить моя программа Python и как я могу изменить это, таким образом, программа может использовать больше мощности ЦП?
Я предполагаю, что у Вас есть ЦП с 8 виртуальными ядрами (четырехъядерный с гиперпоточностью, вероятно)? Это означает, что тот полностью загрузил поток ЦП/, виртуальное ядро равняется общей нагрузке на 12,5%.
интерпретатор Python является приложением, которое только работает как один единственный процесс по умолчанию и поэтому не в состоянии использовать в своих интересах больше чем одно виртуальное ядро. Даже если код, Вы выполняете с ним многопоточность использования, это будет все еще только использовать один поток ЦП / виртуальное ядро, из-за GIL (глобальная блокировка интерпретатора) .
, Только если Ваша программа Python использует многопроцессорная обработка , который на самом деле запускает несколько экземпляров интерпретатора Python и позволяет им выполнить Ваши действительно параллельные задачи, можно использовать в своих интересах несколько виртуальных ЯДЕР/ПОТОКОВ ЦП. (Как @SargeBorsch указанный в его комментарии, существуют также некоторые усовершенствованные способы достигнуть этого без многопроцессорной обработки, но это обычно - не что-то, что Вы быстро пишете сами.)
Другая возможность, менее вероятно в этом случае, состоит в том, что программа ограничена диском, т.е. она читает и пишет в диск, который является медленным, и ЦП ожидает диска.