![]() |
Вопрос по оптимизации
Друзья, у меня вопрос не чисто о кодинге, а скорее о подходе, т.к. очень плохо ориентируюсь в вопросах оптимизации.
Сейчас пишу внутриигровой журнал и, в частности, статистику персонажа: характеристики, шмотки и т.п., как обычно в ролевых играх. Вопрос, какой из двух приведённых ниже подходов оптимальнее с т.з. вычислительных ресурсов: 1/ заготовить "рыбу" в виде экземпляров Sprite с блоками инфо обо всех свойствах. Каждый раз, когда пользователь выбирает опцию "показать статистику персонажа", обращаться к Модели этого персонажа, вытаскивать из неё значения параметров и создавать статус-иконки, заполнять текстовые поля, шкалы, тултипы и т.п. 2/ создать и заполнить экземпляры Sprite для каждого персонажа заранее, в момент его инициализации в игре, и складывать их в Vector или Dictionary. Получив соответствующую команду пользователя, вытаскивать и добавлять в DOC. А обновлять (ориентировочно) в момент открытия журнала, проверяя, какие параметры изменились, по сравнению с предыдущим открытием. Может, ещё будут какие-нибудь здравые мысли. Спасибо. |
Второй вариант звучит более оптимизировано, т.к. все объекты уже заранее подготовлены и остаётся их только отобразить если я всё правильно понял, но стоит ли хранить всю эту информации в памяти и вообще как часто игрок будет смотреть этот журнал (допустим сгенерировали мы кучу разных экземпляров, храним их в памяти, а игрок так ни разу и не открыл этот журнал, получается зря используем ресурсы :) )? А вообще преждевременная оптимизация - это не лучший подход. Возможно, что первый способ более прост в реализации, а так же более гибкий и универсальный, а разница в производительности между первым и вторым способом составит пару миллисекунд. Я бы вначале попробовал реализовать то что проще и посмотрел бы как оно тормозит или нет.
В первую очередь в оптимизации нуждаются самые загруженные места, т.к. их исправление и даст больше всего прироста производительности. |
Спасибо, разумно. По факту выбрал первый путь. А сам вопрос был больше теоретический. У меня пока вообще сплошные геометрические примитивы и заглушки из пакета graphics, поэтому тормозить там категорически нечему :)
|
| Часовой пояс GMT +4, время: 20:46. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.