All
Я занимаюсь разработкой приложений для Flash уже несколько лет, и вот что мне всегда было интересно.
Я стараюсь быть максимально осторожным, чтобы свести к минимуму количество «накладных расходов», которое использует мое приложение. (Под накладными расходами я обычно подразумеваю оперативную память, усилия по обработке процессора, загруженные данные и т. Д.) Моя цель - использовать как можно меньше ресурсов ПК пользователя.
Итак, я осторожен:
- включает наименьшее количество возможных классов
- свести к минимуму область действия массивов, ссылок, переменных и т. Д.
- удаляйте ненужные клипы, а не скрывайте их
- свести к минимуму количество шрифтов и встраивать только те глифы, которые мне действительно нужны
- тщательно выбирайте графику и максимально сжимайте ее
- и т.д.
(Я знаю, я знаю ... вот где все ребята, выступающие против Flash, присоединяются и говорят: «Как насчет использования Flash!»)
Существуют ли приблизительные рекомендации относительно того, сколько накладных расходов потребляют различные элементы экрана?
- видеоклипы
- статический текст
- динамический текст
- Кнопка
- и т.д.
Например ... Допустим, у меня есть элемент экрана, который может потребоваться изменить в зависимости от состояния приложения. Является ли это менее ресурсоемким, чтобы сделать его динамическим текстовым полем, чем фрагмент ролика?
Или я буду часто тратить дополнительное время на создание сложных экранов с помощью ActionScript, а не на их создание во время разработки в IDE, потому что я наивно полагаю, что код более компактен / менее затратен, чем элементы, предварительно размещенные на сцене.
Или для статических элементов я обычно использую статический текст, потому что наивно полагаю, что он менее ресурсоемкий, чем динамическое текстовое поле. Тем не менее, использование динамического текстового поля дает мне дополнительную гибкость, чем я мог бы оценить в будущем в последующих версиях. Я действительно что-то здесь экономлю?
Или как насчет кнопок и видеоклипов? А как насчет «шрифтов устройства» и «растровых шрифтов» против «сглаживания для анимации» или «сглаживания для удобства чтения»?
Обычно я использую монитор производительности диспетчера задач, но он не очень чувствителен к небольшим изменениям, и сложно создать контролируемый до / после сравнения.
Также важно - я предполагаю, что мувиклип имеет больше накладных расходов, чем статическое текстовое поле. Однако стоит ли вообще беспокоиться о разнице? Я трачу время на программирование, пытаясь сохранить несколько байтов / циклов ЦП, которые никто никогда не заметит?
Хорошая аналогия ... Раньше я был невероятно осторожен с тем, как храню данные. Но сейчас хранилище настолько дешево, что о нем не стоит беспокоиться. Гораздо важнее сосредоточиться на производительности, удобстве обслуживания и т. Д.
Итак, во Flash - стоит ли тратить часы, пытаясь сократить количество клипов с 500 до 400? Или разница незначительна?
Я ценю, что обстоятельства важны - несколько килобайт «веса страницы» на Amazon.com или Twitter.com имеют гораздо большее значение, чем на сайте, который получает несколько сотен посетителей в месяц. Но в целом, есть ли хорошие инструменты для измерения такого типа вещей? Хорошие рекомендации?
Большое спасибо заранее!