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

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

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

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

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

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

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

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

9
задан Tom Wright 14 July 2010 в 12:02
поделиться

5 ответов

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

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

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

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

5
ответ дан 4 December 2019 в 23:38
поделиться

Нет ничего лучше тестирования в реальных условиях...

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

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

1
ответ дан 4 December 2019 в 23:38
поделиться

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

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

0
ответ дан 4 December 2019 в 23:38
поделиться

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

Я бы попробовал другой ПК на случай, если на "рабочих" машинах просто плохое программное обеспечение (угадывание стандартные драйверы контроллера диска XP и т.д.).

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

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

0
ответ дан 4 December 2019 в 23:38
поделиться

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

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

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

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

0
ответ дан 4 December 2019 в 23:38
поделиться
Другие вопросы по тегам:

Похожие вопросы: