Инструменты для профилирования AS3, функции времени для поиска узких мест? - PullRequest
4 голосов
/ 17 апреля 2011

Привет, ТАК :) Я работаю с Flashpunk, чтобы создавать игры с использованием Flex и FlashDevelop (настоятельно рекомендуется, великолепная библиотека и IDE).

Поскольку производительность сильно варьируется от системы к системе, я хочу найти, где происходят замедления, и исправить только эти биты. Flashdevelop имеет встроенный инструмент под названием Profiler, но он показывает только количество объектов и объем используемой памяти, а не время выполнения. Грант Скиннер (Grant Skinner) написал отличный инструмент PerformanceTest, но, похоже, он подходит для написания очень специфических сравнений оптимизации, а не для автоматического профилирования вашего кода.

Я пытаюсь найти инструмент, который будет автоматически анализировать программу во время ее работы и сообщать мне, какие функции выполняются дольше всего. Я слышал, что в CS5 это встроено, но мне интересно, есть ли альтернативы.

Большое спасибо за вашу помощь!

Ответы [ 5 ]

1 голос
/ 22 октября 2012

Вы захотите проверить проект Monocle [1] [2] [3]. Он доступен для публичного бета-тестирования с ограничением.

[1] http://www.bytearray.org/?p=4858
[2] http://inflagrantedelicto.memoryspiral.com/2012/10/using-advanced-telemetry-with-monocle/
[3] https://prerelease.adobe.com/callout/?callid=59A4F95D908A4D2FB9F302729FD0D87F

0 голосов
/ 25 августа 2012

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

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

К сожалению, для этого требуется версия Flash Builder Premium, но припо крайней мере, вы можете попробовать его перед покупкой.

Я думаю, это довольно раздражает платить за всю IDE, если вас интересует только профилировщик.

0 голосов
/ 17 апреля 2011

Профилировщик FDT показывает время выполнения методов, если вы используете режим «Профилирование производительности». Может быть, профилировщик Flexbuilder имеет аналогичную функцию, но я не уверен. Подробнее о проверке FDT Profiler это видео .

0 голосов
/ 17 апреля 2011

Существует в основном два типа профилировщиков: профилировщики памяти и профилировщики производительности.Похоже, вы использовали Memory Profiler в прошлом, но то, что вы описываете, называется Performance Profiler.

FlashBuilder Professional (нестандартный) включает в себя Performance Profiler.Я использовал его несколько раз с большим успехом.Подход @Mike Dunlavey хорош, если у вас нет инструмента, но я считаю, что метрики, предоставляемые Performance Profiler, стоят своих денег, независимо от того, какой стек (не только платформа Flash) я разрабатываю.

B

0 голосов
/ 17 апреля 2011

Итак, по сути, вы хотите иметь инструмент, который автоматически проверяет все ваши функции на время выполнения?Да, вы не найдете этого.

Вам нужно использовать тест, как упомянуто с инструментом «PerformanceTest», который дал вам Грант.Вам также нужно написать тест вручную, потому что не существует достаточно интеллектуального инструмента (кроме Watson AI), который мог бы написать тестовые сценарии для вас.Это называется модульное тестирование, и это единственный способ выполнить тестирование производительности для каждой функции.Любой крупный проект должен иметь некоторую форму тестирования.

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