Во Flash, сколько «накладных расходов» на различные типы элементов экрана (мувиклипы, статический текст, динамический текст) можно добавить в SWF? - PullRequest
2 голосов
/ 29 октября 2009

All

Я занимаюсь разработкой приложений для Flash уже несколько лет, и вот что мне всегда было интересно.

Я стараюсь быть максимально осторожным, чтобы свести к минимуму количество «накладных расходов», которое использует мое приложение. (Под накладными расходами я обычно подразумеваю оперативную память, усилия по обработке процессора, загруженные данные и т. Д.) Моя цель - использовать как можно меньше ресурсов ПК пользователя.

Итак, я осторожен:

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

(Я знаю, я знаю ... вот где все ребята, выступающие против Flash, присоединяются и говорят: «Как насчет использования Flash!»)

Существуют ли приблизительные рекомендации относительно того, сколько накладных расходов потребляют различные элементы экрана?

  • видеоклипы
  • статический текст
  • динамический текст
  • Кнопка
  • и т.д.

Например ... Допустим, у меня есть элемент экрана, который может потребоваться изменить в зависимости от состояния приложения. Является ли это менее ресурсоемким, чтобы сделать его динамическим текстовым полем, чем фрагмент ролика?

Или я буду часто тратить дополнительное время на создание сложных экранов с помощью ActionScript, а не на их создание во время разработки в IDE, потому что я наивно полагаю, что код более компактен / менее затратен, чем элементы, предварительно размещенные на сцене.

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

Или как насчет кнопок и видеоклипов? А как насчет «шрифтов устройства» и «растровых шрифтов» против «сглаживания для анимации» или «сглаживания для удобства чтения»?

Обычно я использую монитор производительности диспетчера задач, но он не очень чувствителен к небольшим изменениям, и сложно создать контролируемый до / после сравнения.

Также важно - я предполагаю, что мувиклип имеет больше накладных расходов, чем статическое текстовое поле. Однако стоит ли вообще беспокоиться о разнице? Я трачу время на программирование, пытаясь сохранить несколько байтов / циклов ЦП, которые никто никогда не заметит?

Хорошая аналогия ... Раньше я был невероятно осторожен с тем, как храню данные. Но сейчас хранилище настолько дешево, что о нем не стоит беспокоиться. Гораздо важнее сосредоточиться на производительности, удобстве обслуживания и т. Д.

Итак, во Flash - стоит ли тратить часы, пытаясь сократить количество клипов с 500 до 400? Или разница незначительна?

Я ценю, что обстоятельства важны - несколько килобайт «веса страницы» на Amazon.com или Twitter.com имеют гораздо большее значение, чем на сайте, который получает несколько сотен посетителей в месяц. Но в целом, есть ли хорошие инструменты для измерения такого типа вещей? Хорошие рекомендации?

Большое спасибо заранее!

1 Ответ

1 голос
/ 02 ноября 2009

Ну, это зависит от того, насколько глубоко заходит класс с точки зрения иерархии, т. Е. DisplayObjectContainers будет занимать больше ресурсов, чем DisplayObjects, потому что первый имеет больше переменных и функций, чем последний. Так что если вам нужно показать какую-то графику, но вы не хотите изменять ее в течение SWF, то лучше сделать ее Shape вместо MovieClip или Sprite. Кнопки, очевидно, дешевле, чем MovieClips и Sprites, а Sprites дешевле, чем MovieClips (поскольку у Sprites только один кадр). Поэтому хорошо быть осторожным при выборе подходящего класса для ваших требований. События могут иметь слабую ссылку.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...