Примеры интенсивного расчета CPU? - PullRequest
24 голосов
/ 12 сентября 2010

Мне нужны несколько легко реализуемых вычислений с одним процессором и объемом памяти, которые я могу написать в java для планировщика тестовых потоков.

Они должны быть немного трудоемкими, но, что более важно, ресурсоемкими.1004 * Есть идеи?

Ответы [ 7 ]

23 голосов
/ 12 сентября 2010

Несколько простых примеров ресурсоемких задач:

  • поиск простых чисел (включает множество делений BigInteger)
  • расчет больших факториалов, например 2000! ((включает много умножений BigInteger)
  • много вычислений Math.tan () (это интересно, потому что Math.tan является нативным, поэтому вы используете два стека вызовов: один для вызовов Java, другой для вызовов C.)
6 голосов
/ 12 сентября 2010

Тест замачивания процессора для PDP-11 был tan(atan(tan(atan(...))) и т. Д. Работает с FPU довольно сложно, а также со стеком и регистрами.

6 голосов
/ 12 сентября 2010

Умножьте две матрицы.Матрицы должны быть огромными и храниться на диске.

Поиск строки.Или индексировать огромный документ (обнаруживать и подсчитывать вхождение каждого слова или строк алфавитов). Например, вы можете индексировать все идентификаторы в исходном коде большого программного проекта.

Вычисление числа пи.

Поворот 2D-матрицы или изображения.

Сжатие нескольких огромных файлов.

...

4 голосов
/ 12 сентября 2010

Хорошо, это не Java, но это основано на Dhrystone найденном алгоритме здесь . Эти реализации алгоритма могут дать вам представление о том, как это делается. Ссылка здесь содержит исходные коды для C / C ++ и Ассемблера для получения тестов.

3 голосов
/ 07 апреля 2012
  • Рассчитать n-й член ряда Фибоначчи, где n больше 70. (отнимает много времени)

  • Рассчитать факториалы больших чисел.(отнимает много времени)

  • Найти все возможные пути между двумя узлами на графике.(потребляет память)

1 голос
/ 12 сентября 2010
  1. Официальный вызов RSA
  2. Неофициальный вызов RSA - возьмите какой-нибудь зашифрованный текст, который вы хотите прочитать в виде открытого текста. Пусть компьютер на это. Если вы используете рандомизированный алгоритм, существует небольшая, но ненулевая вероятность того, что вы добьетесь успеха.
0 голосов
/ 15 января 2017

Я возился с приоритетом потока в Java и использовал приведенный ниже код.Кажется, что процессор достаточно занят, и приоритет потока имеет значение.

...