Как максимизировать мощность, используемую моим приложением в C #? - PullRequest
2 голосов
/ 04 апреля 2009

Поскольку я создал приложение, которое сложно вычислять -> много работы, не очень сложные вычисления -> оно занимает слишком много времени, и процесс занимает только 45% ресурсов процессора Можно ли как-то максимизировать его ?: перейти на 90%?

Ответы [ 4 ]

7 голосов
/ 04 апреля 2009

Если у вас есть двухъядерный компьютер (что, я полагаю, у вас есть), самое большее, что вы могли бы надеяться получить в одном потоке, это 50% загрузки ЦП.

Чтобы получить 90% загрузки ЦП, вам, скорее всего, понадобится провести вычисления. Это может быть очень просто или очень сложно, в зависимости от характера алгоритма, который вы хотите использовать.

Если вы можете разбить ваш рабочий набор на несколько групп, я бы рекомендовал рассмотреть возможность использования ThreadPool или, возможно, даже Task Parallel Library , в зависимости от времени выпуска.

2 голосов
/ 04 апреля 2009

Проверьте это:

  1. Вы читаете с диска при расчете? Если это так, попробуйте прочитать данные в памяти перед вычислениями.
  2. Записываете ли вы результаты на диск или консоль при расчете? Если это так, попробуйте отложить запись до окончания расчета, а затем выполните запись.
  3. Если у вас многоядерный процессор, попробуйте создать многопоточный алгоритм, если это возможно.
2 голосов
/ 04 апреля 2009

Скорее всего, у вас двухъядерный ЦП, и если ваше приложение однопоточное, максимальный ЦП, который он будет использовать, составляет 50% (все одно ядро). Для более эффективного использования вам необходимо использовать несколько потоков, но это также означает, что нужно найти способ разбить ваши расчеты на части, чтобы они могли обрабатываться несколькими ядрами.

1 голос
/ 04 апреля 2009

Если у вас есть простой цикл, выполняющий вычисления, то, скорее всего, ваш компьютер имеет два ядра / процессора. Однопоточное приложение в лучшем случае будет использовать 50% ЦП.

Вам нужно несколько потоков, чтобы использовать весь процессор на многоядерном компьютере.

...