Есть ли способ получить объем памяти и мощность процессора, необходимые для моего приложения. Недавно у меня был очень неприятный опыт, когда одно из моих приложений продолжало замораживать компьютеры, на которых он работал. Это, очевидно, связано с отсутствием аппаратной мощности, потому что он отлично работает на более сильных компьютерах, которые я использовал для тестирования, где приложение отлично работает. Поэтому мой вопрос: есть ли способ вычислить объем аппаратной мощности, необходимый для бесперебойного запуска приложения? Практически все мои приложения выполняются на C#, поэтому мне нужен метод, который может работать с этим типом приложения. БлагодаряПолучение требований к оборудованию для моего приложения
ответ
Это, очевидно, связано с отсутствием аппаратной мощности
Это полностью зависит от того, что делает ваше приложение. Если вы решаете проблемы в «не так эффективном времени», тогда вы можете оптимизировать код.
Предлагаю вам проанализировать ваш код с помощью profiler.
Это скажет вам:
- Какие части вашего кода занимают большую часть RAM/CPU
- Сколько оперативной памяти в общей сложности сделал вашу потребность приложения, когда она заглянула
- Информация о потреблении CPU
Я бы сказал, что это необходимо проверить во время установки программного обеспечения. Позже, если пользователю было предложено обновить его/ее аппаратное обеспечение и отклонить предупреждение, вы не должны заботиться об этом.
Если вы используете Windows Installer (MSI), вы можете играть с настраиваемым действием и использовать классы System.Management
для определения того, что вы хотите.
Поскольку пользователи очень хорошо читают все, что они представлены во время установки, и [никогда не нажимают «Соглашаться», не читая, на что согласны] (http://www.southparkstudios.com/clips/382786/you-didnt- чтения его). – CodeCaster
@CodeCaster вы всегда можете блокировать установку, если пользователь не заботится о таких уведомлениях! : D –
Это, очевидно, связано с отсутствием аппаратной мощности, потому что он прекрасно работает на сильных компьютеров, которые я использовал для тестирования,
Кто установить тестирование должен быть уволен.
У вас должен быть один компьютер, похожий на тот, который приложение будет запускать для тестирования. Это была принятая практика 20 лет назад - кажется, современное время не заботится об этом.
Серьезно, вам НЕОБХОДИМО иметь тестовый набор, который является представителем на вашем самом низком уровне принятого оборудования.
В противном случае - нет, извините, не волшебная кнопка. Профилировщики НЕ обязательно помогают (отладка, профилировщик может использовать больше памяти). Попробуйте профайлер. Оптимизируйте код. Но в конце ... вам нужно иметь приличный стенд.
Точно, но ситуация, в которой я оказалась, - это то, что вчера они мне позвонили, чтобы сказать мне, что они купили 5 компьютеров (не обсуждая ни о чем) и что приложение должно быть функциональным для использования сегодня. Добро пожаловать в жизнь программистов, правильно: D – NDraskovic
;) Это время, когда я говорю своему клиенту, чтобы он стал реальным, и превратил дневной курс в мою почасовую ставку - у меня есть намерение ZERO исправить беспорядок. Они могут с радостью пойти в следующий компьютерный магазин и получить оборудование, соответствующее требованиям. Я рад, что не работаю. – TomTom
Правильно, но представьте, что мы говорим об игре с ПК, и у пользователя есть старый графический процессор и процессор. Иногда профилирование работает хорошо, но другие ситуации - это именно то, что сказал OP: устаревшее оборудование. –
@ MatíasFidemraizer, путем профилирования вы можете найти узкие места в отношении памяти/процессора. GPU будет сложнее сравнивать. –
Да, но ваш ответ не является фактическим решением для ОП. Почему вы думаете, что это проблема оптимизации? Кто знает! Вы предполагаете, что OP написал неоптимизированное приложение, и его проблема заключается не в том, что у некоторых клиентов устаревшее оборудование.Но подождите, он сказал, что у некоторых есть устаревшее оборудование! : D –