Как разработать программу оценки производительности - PullRequest
2 голосов
/ 09 ноября 2011

Вероятно, все слышали о различном программном обеспечении, используемом для измерения производительности оборудования, на котором оно работает.Я имею в виду такие вещи, как Windows Experience Rating, PCMark, Futuremark и так далее.Они измеряют различные аспекты производительности компьютера: скорость процессора и графического процессора, время доступа к памяти, время доступа к диску и т. Д.

Кто-нибудь может объяснить, как разработать такую ​​программу, чтобы ее результат был надежным?Процессор, память и скорость доступа к диску имеют для меня наибольшее значение, GPU и другие вещи не нужны.Я предполагаю, что там может быть много предостережений, таких как многоядерный процессор или процессор с динамической частотой.Или разные скорости чтения и записи в разных секторах жесткого диска.Или что-то еще.

Я был бы признателен за информацию о различных аспектах, не обязательно обо всем, что я упомянул, хотя это было бы здорово.

PS Меня больше всего интересует среда Windows,если это имеет значение.Но, вероятно, нет.

Ответы [ 3 ]

1 голос
/ 09 ноября 2011

http://www.tomshardware.com/charts/ имеет хорошие отзывы о производительности оборудования.

Это скорее форум по программированию (но, похоже, вы знаете это из-за своего рейтинга). https://superuser.com/ может больше обратиться к вопросам производительности Windows.

Что касается вашего вопроса, бенчмаркинг - это просто определение времени, сколько требуется времени для выполнения операции X или сколько операций X может быть выполнено за время X.

Для тестирования кода вы должны установить временную метку вверху скрипта кода и другую временную метку внизу и сравнить их. Разница (обычно в миллисекундах) будет в том, насколько быстро работает ваш скрипт. Оптимизация кода уменьшит разницу (очевидно).

То же самое обычно и с аппаратным обеспечением. Лучшая прошивка или дайверы могут иметь какое-то значение. Обновите ваше оборудование, если вы чувствуете, что оно неадекватно.

Легко увидеть, если вам нужно больше оперативной памяти, просто посмотрите, сколько используется, если это 75%, тогда получите больше. Скорость оперативной памяти также важна. DDR3 1200-1600 обычно достаточно.

В наши дни компьютеры настолько мощны, что большинству людей не требуется обновление, если вы купили новый компьютер в течение последних нескольких лет. Просто держите подальше ненужные программы и регулярно запускайте что-то вроде ccleaner.

edit: Что касается того, как разработать эталонный тест CPU: выберите формулу или операцию, которая занимает много времени, например, вычисление мест PI до X, затем запишите, сколько времени потребуется для этого. Опять же, вы также должны принять во внимание количество ядер и другие функции, которые ваша программа тестирования не может использовать в своих интересах.

0 голосов
/ 14 ноября 2017

Я работаю над чем-то похожим для своей роли на работе.У меня есть несколько тестов на производительность CPU Integer, одним из которых является поиск Mersenne Prime.Это может удвоиться как тест нагрузки / стабильности для процессора.Легендарное программное обеспечение для тестирования стабильности Prime95 использовало простые поиски Mersenne.

Я обнаружил, что этот образец сайта Microsoft невероятно полезен.Я изменил этот поиск Mersenne Prime для своих нужд, но он работает из коробки:

https://code.msdn.microsoft.com/BigInteger-Multitasking-eb319df1

При тестировании процессора вы также хотите тестировать операции с плавающей запятой, пока ненашел что-нибудь полезное для них, но обновлю этот пост, если я это сделаю.

Здесь также был полезный комментарий по аналогичному вопросу о тестировании ОЗУ:

Сравнение производительности ОЗУ - UWPи C #

0 голосов
/ 10 февраля 2017

Я разрабатываю простой тест производительности процессора, чтобы определить, какая позиция вентилятора более эффективна :)

Моя первая попытка состоит в том, чтобы максимально увеличить использование процессора с помощью простой арифметики (counter ++) при построении графика текущей скорости процессора и температуры.и приращения счетчика в секунду, но это, вероятно, слишком просто.

Следует иметь в виду, что у CPU есть разные секции для вычисления с плавающей запятой и других вещей, некоторые (все?) делают это даже параллельно,поэтому вы можете учесть это при генерации нагрузки.

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

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

...