2009-07-03 3 views
4

Есть ли способ оценить минимальные требования к программному обеспечению? Я имею в виду, как я могу обнаружить, например, минимальное количество ОЗУ, которое потребуется моему приложению?Оценка минимальных требований к программному обеспечению

Спасибо!

+0

http://stackoverflow.com/questions/893329/determining-recommended-system-requirements Dupe? – Brandon

+0

yup ... не нашел его раньше ... спасибо! – Fernando

ответ

3

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

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

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

Наиболее эффективный способ понять минимальные требования является

  • Убедитесь, что у вас есть эффективный способ измерения производительности с помощью показателей, которые важны для вашего пользователя. лучшей метрикой является время отклика. В зависимости от вашего приложения может применяться такая скорость, как пропускная способность или операции в секунду. Ваши измерения могут быть эмпирическими (например, просто попробуйте), но это наименее эффективно. Это лучше всего сделать с помощью какой-то инструментальной аппаратуры. В окнах выбор [ETW] [1]. Другие операционные системы имеют другие подходящие механизмы.
  • Имейте какой-то автоматизированный способ осуществления вашего приложения. Это позволит вам делать повторные и надежные измерения.
  • Измерьте ваше приложение, используя различные размеры памяти и посмотрите, как начнет страдать производительность. Это также может привести к ошибкам производительности, которые мешают вашему приложению работать хорошо. Если у вас есть доступ к платформам с различными уровнями производительности, используйте их также. Вы не указали, что делает ваше приложение, но тестирование на нетбуке с 1 ГБ памяти отлично подходит для многих (не всех) клиентских приложений.

Вы можете сделать то же самое с процессором и другими компонентами, такими как диск, сеть или графический процессор.

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

Есть и другие факторы: например, ваше приложение может работать нормально в одной конфигурации, пока пользователь не откроет другое приложение, которое может быть голодным или процессором. У пользователей редко только одно приложение открыто.

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

[1]: http://msdn.microsoft.com/en-us/library/ms751538.aspxсильный текст

0

Вы можете попробовать использовать профилировщик производительности на своем программном обеспечении во время стресс-тестирования.

1

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

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

3

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

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

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

+0

+1 для рассмотрения целевой аудитории, вместо того, чтобы просто проверять, что нужно для приложения, когда это будет сделано. – OregonGhost

0

Вы можете использовать виртуализацию для многократного запуска репрезентативного набора тестов с разным объемом ОЗУ на виртуальной машине ... когда производительность падает ниже допустимых уровней из-за замены, вы нашли потребность в памяти.

Смежные вопросы