Анализируем отчет о килобайтах во флекс приложении

Бывает надо разобраться куда же уходят сотни килобайт и без того огромного флекс приложения. Классический способ, — сгенерировать репорт добавив ключ компиляции типа «-link-report=report.xml» в «Menu — Project — Properties — Flex Compiler — Additional compiler arguments». После компиляции имеем огромный XML вида:

 
<report>
  <scripts>
    <script name="...\framework.swc(mx/core/EventPriority)" mod="1201055703673" size="755" optimizedsize="400">
      <def id="mx.core:EventPriority" />
      <pre id="Object" />
      <dep id="mx.core:mx_internal" />
      <dep id="AS3" />
    </script>
    <script name="_plainStyle.as" mod="9223372036854775807" size="798" optimizedsize="640">
      <def id="_plainStyle" />
      <pre id="Object" />
      <dep id="mx.core:IFlexModuleFactory" />
      <dep id="mx.styles:StyleManager" />
      <dep id="AS3" />
      <dep id="mx.styles:CSSStyleDeclaration" />
    </script>
</scripts></report>

Анализировать его не очень то и просто. Гугл подсказал несколько вариантов разбора этого XML:

  1. При помощи XSLT
  2. С помощью небольшого приложения

Я предлагаю альтернативный и наглядный способ анализа, при помощи excel:

  • Первое что надо сделать, — это добавить первой строкой «< ?xml version="1.0" encoding="UTF-8" ?>»
  • Открываем XML
  • Выбираем в диалоге «As an XML table». Имеем все данные в таблице.
  • Имело бы смысл сгруппировать модули и посмотреть суммарный размер каждого.
  • Выделяем интересующие нас данные.
  • Нажимаем Insert — Pivot Table (сводная тадлица).
  • В появившемся окне кликаем чекбокс возле name и перетяиваем optimizedsize в Values. В Value Field Settings меняем функцию с Count (сейчас показывает количество группировок для каждого модуля) на Sum
  • Сортируем по убыванию размера модулей.

Должно получится что-то типа такого:

screen

Comments

comments


Bookmark and Share