onEnterFrame #14

Четырнадцатый мегавыпуск мегаподкаста.

  • Media Temple DDOS
  • I was featured at art lebedev studio’s business lynch project
  • NAS iStor 607
  • Игра для Braun
  • Как меня обманули Морганы во вконтакте
  • MXML в AS3 проектах и как я патчил компилятор
  • Как я притворялся бомжом, чтобы получить Flex Builder
  • Как мы ржали над вакансиями и где взять AS2 программиста?
  • Сложность разработки социальных игр
  • Unity3d, Flash и JD interstellarmarines.com
  • HTML5 vs Flash, куда без него
  • AS3 — отстой
  • Джоинимся в RAFPUG и приглашаем ботов во имя добра!

Audio clip: Adobe Flash Player (version 9 or above) is required to play this audio clip. Download the latest version here. You also need to have JavaScript enabled in your browser.

Скачать

11 Responses to “onEnterFrame #14”


  • Я автор той статьи на хабре. В примере про трейс abc, проблема не в порядке сортировки, а в том что {} и new Object() ведут себя в этом примере по разному, т присваивание в new Object() работает конкретно, с учетом что из документации следует что это один и тот же тип объектов.

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

    • Valentin Vladimirovich

      Я предлагаю не использовать нетипизированное хрензнаетчто вообще. Собрать все свойства в самом начале и пробежать потом. Правда, это не подходит под экономию ресурсов. Все это барахло написано индусами программистами и тянется еще с AS1. У нас в AS3 до сих пор наследование через прототипы держится. Если смотреть внутрь, то {} и new Object() компилятся в совсем разные инструкции:

      NewObject 0

      и

      FindPropStrict QName(PackageNamespace(”"), “Object”) ConstructProp QName(PackageNamespace(”"), “Object”), 0

      • >> Я предлагаю не использовать нетипизированное хрензнаетчто вообще. Собрать все свойства в самом начале и пробежать потом.

        Ага. Это если по уму, можно еще везде и try..catch..finally использовать. Если бы не приходилось еще помнить о пользователях маков у которых производительность в 4 раза ниже win, и каждое лишнее дествие обходится дорого. Я лично подстраиваюсь под ситуацию, если можно кривым кодом, дать дополнительную производительность пользователям – я буду так делать. А если adobe это пофиксит, перейти на типизацию свойств – не проблема.

        На на данный момент индусы пишут код плеера, так что подстраиваться приходится разработчикам а не индусам и чтобы они не написали, проблемы придется решать flash разработчикам.

        >> Если смотреть внутрь, то {} и new Object() компилятся в совсем разные инструкции
        Я это знаю, о чем и сказал в том посте на хабре в комментариях.

        • Valentin Vladimirovich

          Я какбы согласен, но такие посты разворачивают очередные тупые холивары со стороны ничего не понимающих типов. О чем я собсно говорил на примере некоего пхпшника. Ну так и живем.

          • Каждый хвалит свою корову, даже если она мертвая. Мне для моих проектов необходимы все возможности языка и плеера. трейс abc это косяк адоба, если это происходит из-за особенностей плеера или AVM, и просто следует использовать в таких случаях new Object ИМХО следует это указывать в документации и отмечать, что это два разных типа объектов, и делать этот текст красным и моргающим.

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

    • слова “экономия ресурсов” и “for in” не сочетаются в принципе
      for in медленнее for each в 12 раз, а for – в 15
      http://jacksondunstan.com/articles/358

      • Я это прекрасно знаю. Как через for each получать имена свойств?

        • Сохраните все свойства через for in в массив, потом уже обходите только массив и меняйте свойства объекта как вам нужно.
          А во время for in никаких действий с объектом совершать не надо.

          • То есть два прохода циклом + доп объект это экономия ресурсов? У меня в динамическом объекте может хранится B-Дерево, каким образом мне сможет помочь массив со свойствами? Если я буду использовать типизированные значения, количество памяти и CPU для работы с ним увеличется в разы, а деревьев могут быть тысячи.

          • ваше дерево явно не из ниоткуда берется, значит можно сразу загонять его в массив и работать уже с ним

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

    Древовидные структуры данных бывают разные, изменяемое R-дерево, можно создать только на основе динамических объектов. К тому же если врехняя ветка будет не валидна, можно просто уйти из цикла обработки вашем случае я потрачу кучу ресурсов на поврежденные данные.

Leave a Reply