Профилировщик вам не поможет. Также не будет оцениваться размер структур данных.
Профилировщик может точно рассказать вам, где ваш код тратит самое большое время процессора, но он не скажет вам, если вам не хватает целевых показателей производительности - например. если ваши пользователи будут довольны или недовольны работой вашего приложения в любой системе.
Простое вычисление размера структур данных и сколько может быть выделено в любой момент времени, совсем не даст вам точной картины использования памяти с течением времени. Причина в том, что использование памяти определяется многими другими факторами, в том числе количеством операций ввода-вывода вашего приложения, функциями ОС, которые использует ваше приложение, и, самое главное, временным характером использования вашего приложения в памяти.
Наиболее эффективный способ понять минимальные требования является
- Убедитесь, что у вас есть эффективный способ измерения производительности с помощью показателей, которые важны для вашего пользователя. лучшей метрикой является время отклика. В зависимости от вашего приложения может применяться такая скорость, как пропускная способность или операции в секунду. Ваши измерения могут быть эмпирическими (например, просто попробуйте), но это наименее эффективно. Это лучше всего сделать с помощью какой-то инструментальной аппаратуры. В окнах выбор [ETW] [1]. Другие операционные системы имеют другие подходящие механизмы.
- Имейте какой-то автоматизированный способ осуществления вашего приложения. Это позволит вам делать повторные и надежные измерения.
- Измерьте ваше приложение, используя различные размеры памяти и посмотрите, как начнет страдать производительность. Это также может привести к ошибкам производительности, которые мешают вашему приложению работать хорошо. Если у вас есть доступ к платформам с различными уровнями производительности, используйте их также. Вы не указали, что делает ваше приложение, но тестирование на нетбуке с 1 ГБ памяти отлично подходит для многих (не всех) клиентских приложений.
Вы можете сделать то же самое с процессором и другими компонентами, такими как диск, сеть или графический процессор.
Также обратите внимание, что здесь нет простого ответа - эффективная работа по установлению минимальных требований - это настоящая работа. Это особенно верно, если ваше приложение чувствительно к участию в одном аспекте платформы.
Есть и другие факторы: например, ваше приложение может работать нормально в одной конфигурации, пока пользователь не откроет другое приложение, которое может быть голодным или процессором. У пользователей редко только одно приложение открыто.
Это означает, что помимо указания минимальных требований вы должны сделать эффективную работу по настройке ожиданий пользователей - это объясняет, когда ваше приложение будет работать хорошо, а когда это не будет, и каковы факторы, влияющие на производительность.
[1]: http://msdn.microsoft.com/en-us/library/ms751538.aspxсильный текст
http://stackoverflow.com/questions/893329/determining-recommended-system-requirements Dupe? – Brandon
yup ... не нашел его раньше ... спасибо! – Fernando