Какие инструменты я могу использовать для определения требований к оборудованию моего приложения? - PullRequest
9 голосов
/ 12 июля 2010

Для постоянных читателей: saga ™ продолжается ...

Мое приложение отлично работает на моей машине для разработки, которая была приобретена (5 лет назад) как довольно хорошая игровая установка.Таким образом, он 64-разрядный, имеет тактовую частоту 2,2 ГГц и 2 ГБ памяти.

Работающие машины, однако, являются стандартными офисными компьютерами Dell и действительно не могут даже запустить мое приложение, не говоря уже о его запуске..

( Объяснение ... Я могу представить себе людей, кричащих на меня: «Что, черт возьми, ты делаешь, чтобы требовать такую ​​спецификацию?» Ну, я делаю много изображений в реальном временианализ и генерация аудио. Итак, есть. )

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

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

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

Ответы [ 5 ]

5 голосов
/ 18 июля 2010

У вас есть доступ к хорошему профилировщику? Я думаю, что было бы полезно понять узкие места производительности в вашем приложении. Если окажется, что ваше приложение связано с процессором, то вам, очевидно, стоит подумать о том, чтобы потратить на процессор высокого уровня. Является ли приложение многопоточным? Если да, то использует ли ваше приложение преимущества нескольких процессоров или оно сериализуется из-за синхронизации?

Если приложение связано с вводом-выводом, возможно, вам следует вместо этого рассмотреть возможность приобретения SSD-накопителя.

Возможно, приложение тратит слишком много времени на подкачку? и т.д ...

Если у вас есть доступ к Visual Studio 2010 Ultimate, я бы порекомендовал проверить Concurrency Profiler . Это поможет вам визуализировать, что происходит в вашей программе, и выявить узкие места в производительности. Он покажет вам, где ваше приложение тратит время: ожидание ввода-вывода, управление памятью и т. Д. Хотя этот инструмент определенно не скажет вам, каковы минимальные требования к оборудованию, он должен дать вам хорошее представление о том, какие улучшения оборудования поможет вашему приложению работать лучше. Если у вас нет VS2010, вы могли бы провести аналогичный анализ с любым хорошим профилировщиком. Отличительной особенностью Concurrency Visualizer является то, что он фокусируется на выявлении одновременных и многопоточных проблем с производительностью.

1 голос
/ 12 июля 2010

Ничто не сравнится с тестированием в реальном мире ...

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

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

0 голосов
/ 20 июля 2010

Прости, что я констатировал очевидное, но:

Используйте ВАШЕ программное обеспечение для проверки требований к аппаратному обеспечению для ВАШЕГО ПО.

Я не знаюЯ не совсем понимаю, почему технические характеристики вашей машины для разработки - это не просто требования к ноутбуку, который вы предлагаете купить.Но если по какой-то причине этого недостаточно, запустите свое программное обеспечение на другом оборудовании с другими спецификациями.Например, вы можете извлечь 1 ГБ ОЗУ из своей машины для разработки, чтобы увидеть, как идут дела с меньшим объемом доступной памяти.

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

0 голосов
/ 12 июля 2010

Из краткой информации не похоже, что ваш компьютер обладает особо высокими характеристиками.Какие спецификации у компьютеров Dell, которые вы видели, работают медленно?

Я бы попробовал другой компьютер, если «рабочие» машины - просто плохие сборки программного обеспечения (угадывая стандартные драйверы контроллера дисков XP и т. Д.).*

Я бы вообще не рекомендовал идти по маршруту виртуальной машины, так как на самом деле это полезно только для ограничения использования оперативной памяти.Однако если вам нужно проверить альтернативные ОС / пакеты обновления, то виртуальные машины - хороший способ.

Наконец, вы говорите, что приложение загружается медленно, что оно делает при загрузке?Возможно, стоит взглянуть на мониторы производительности, чтобы определить, ограничены ли они диском, ОЗУ или ЦП.Используйте Google, чтобы найти полезные счетчики для мониторинга каждого.

0 голосов
/ 12 июля 2010

Один из вариантов - создать серию виртуальных машин с различными конфигурациями системы и опробовать свое приложение на каждой (вы захотите сделать это на высокопроизводительной машине). Таким образом, вы можете регулировать объем памяти, который имеет виртуальная машина, тип процессора и т. Д., И моделировать тестирование программного обеспечения на различных системах. Во время тестирования вы можете использовать диспетчер задач Windows, чтобы узнать, сколько ЦП и памяти хоста использует ваше приложение. Для удобства работы вы хотите, чтобы ваше приложение как можно больше помещалось в физической памяти (плюс около 1-1,5 ГБ для ОС и других фоновых служб).

Также помните, имеет ли ваше приложение какие-либо функции, требующие аппаратной поддержки (DirectX 11, CUDA и т. Д.), И убедитесь, что вы включили это в требования к аппаратному обеспечению.

...