2013-08-21 4 views
1

Я читал об утилизации объектов, а именно: flixel. Статья, которую я читал, - here, в случае, если вам было интересно, как и я.Является ли утилизация объектов правдоподобной для каркасов модели сущностей-компонентов

Я начал думать о том, как я мог бы интегрировать подобную систему в мою инфраструктуру на основе сущностей, EntityEngine. Я не уверен, что это обязательно правдоподобно, интегрируя его так, как это делает flixel, похоже, не влияет на частоту кадров, использование процессора/пэпа и т. Д. Я почти уверен, что это связано с фактом что каждый Entity является HashSet<Component>.

Путь flixel обрабатывает рециркуляцию объекта, каждый объект имеет определенный набор полей, то, что сущность не имеет, по дизайну. Когда объект «уничтожен», он не удаляется из базового массива, но сохраняется и переключается, чтобы позволить структуре знать, что этот объект может быть перезаписан и больше не должен обновляться и рисоваться. Тем не менее, я уверен, что унаследованная коллекция является проблемой здесь.

Итак, вопрос в том, могу ли я использовать рециркуляцию объектов для улучшения использования частоты кадров/процессора или, мне не повезло?

EDIT: Я использую .Net 4 с обновлением XNA 4.

+0

В каких рамках вы работаете? Обычный или XNA? –

+0

@ Хенк XNA, я подумал, что это не имеет значения, но, оглядываясь назад, я должен был упомянуть об этом, я отредактирую вопрос, чтобы отразить информацию. – redcodefinal

+0

Это очень важно. XNA очень отличается от регарс к памяти. –

ответ

0

Утилизация объектов/компонентов влияет только на использование частоты кадров/процессора, если у вас возникли проблемы с сборщиком мусора.

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

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

  • Нет связанных вопросов^_^