Как BDD повлияет на эффективность приложения? - PullRequest
0 голосов
/ 10 февраля 2011

Я обдумываю использование BDD для моего личного проекта.Тем не менее, это видеоигра (в то же время игра с био-симом, закодированная в C # с XNA), и я не уверен, что модульность, применяемая BDD, будет полезна с точки зрения времени выполнения.

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

Может кто-нибудь дать мне обоснованное мнениеотносительно того, насколько подходящим BDD будет в этой ситуации?Любые рекомендуемые альтернативы (помимо нахождения более вменяемых вещей, связанных с моим временем)?

Спасибо

Ответы [ 2 ]

2 голосов
/ 10 февраля 2011

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

.NET JITTER очень поможет вам сделать вашу игру более эффективной, например, встроенные небольшие методы, так что вам не придется беспокоиться об издержках вызова.(пока вы нацелены на ПК, .NET Jitter на WP7 / Xbox360 этого не делает)

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

0 голосов
/ 10 февраля 2011

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

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

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

...