У меня есть (белая шляпа) инструмент для взлома пароля, который постоянно увеличивает строку пароля, а затем хеширует ее, чтобы сравнить ее с поставляемым хешем (который я хочу взломать). Тем не менее, программа использует только 14% CPU.Почему мое приложение C# (Mono) использует низкий процессор?
Приложение имеет два потока, только один из которых должен быть ресурсоемким. Моя машина имеет 4 ядра с гиперпотоком (8 виртуальных ядер). Тем не менее, даже одно ядро имеет процессорное использование выше 25%. По данным монитора ресурсов, работа, похоже, распространяется вокруг (каждое ядро составляет в среднем около 12%).
Есть ли способ заставить его использовать больше процессора и, надеюсь, работать быстрее или не работает так?
Сколько процессоров/ядро ли ваша машина есть? Является ли ваше приложение однопоточным? Вы пытались изменить приоритет процесса? –
Приложение имеет два потока, только один из которых должен быть ресурсоемким. Моя машина имеет 4 ядра с гиперпотоком (8 виртуальных ядер). Даже в одном ядре нет большого использования ЦП, хотя, по словам монитора ресурсов, работа, по-видимому, распространяется по всему (каждое ядро составляет в среднем около 12%). – Razick
8 * 12 = 96 (или 8 х 12,5 = 100). Поскольку мясо вашего приложения однопоточное, оно может работать только на одном ядре сразу. Он перескакивает от ядра к ядру в соответствии с обычными правилами планирования процесса. Поскольку он использует каждое ядро, он использует 100% этого ядра в течение времени, которое он на этом ядре. Но это только на каждом ядре 1/8 времени. –