Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 19.12.2012, 13:19
Stone вне форума Посмотреть профиль Отправить личное сообщение для Stone Найти все сообщения от Stone
  № 41  
Ответить с цитированием
Stone
 
Аватар для Stone

Регистрация: May 2001
Адрес: Москва
Сообщений: 670
да практически весь имэйджпроцессинг реализованный (портированный) на флэше.

Старый 19.12.2012, 14:41
Psijic вне форума Посмотреть профиль Отправить личное сообщение для Psijic Найти все сообщения от Psijic
  № 42  
Ответить с цитированием
Psijic

Регистрация: Aug 2012
Сообщений: 108
Dictionary стал использовать первый и единственный раз при работе с деревом, когда понадобилась индексация по именам (string)
Array можно использовать при замене кейсов и вообще, полезная штука для работы с классами и пр., например запускаем нужную функцию по заданному значению:
Код AS3:
var functions:Array = [f1,f2,f3];
functions[index]();
Хотя тут можно наверно использовать и вектор, но есть еще другой пример когда тип объекта = *

Object вообще не использую, предпочитаю писать класс с переменными

Старый 19.12.2012, 16:06
Sintesis вне форума Посмотреть профиль Отправить личное сообщение для Sintesis Найти все сообщения от Sintesis
  № 43  
Ответить с цитированием
Sintesis
 
Аватар для Sintesis

Регистрация: Jul 2008
Сообщений: 912
Цитата:
Сообщение от Korchy Посмотреть сообщение
Есть ли пример приложения, у которого скорость доступа была узким местом и нельзя было задействовать элементы других языков для ее решения и смена компонента помогла бы решить проблему?
У меня есть такой модуль в котором рассчитывается касательное пространство 3D модели, рассчитываются касательная и бинормаль к нормали по данным вектора нормали и uv координат текстуры. Писал пару лет назад и там сплошные Arrey, нужно попробовать заменить их на Vector потому, что если в 3D модели больше 25 000 полигонов - флеш плеер задолбётся ждать пока всё посчитается и отключится, можно конечно на другой язык но не... В крайнем случае воркер сделать, чтоб ожидание не прерывалось.

Старый 19.12.2012, 16:24
wvxvw вне форума Посмотреть профиль Отправить личное сообщение для wvxvw Найти все сообщения от wvxvw
  № 44  
Ответить с цитированием
wvxvw
Modus ponens
 
Аватар для wvxvw

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
Цитата:
Сообщение от Korchy Посмотреть сообщение
Есть ли пример приложения, у которого скорость доступа была узким местом и нельзя было задействовать элементы других языков для ее решения и смена компонента помогла бы решить проблему?
Смысл не в скорости рантайма. Они могут отличаться на порядок, предположим, в то время как скорость, например, поиска в массиве от поиска в хеш таблице принадлежит к разным классам сложности. Т.е. каким бы быстрым не был Си рантайм, если вы выбрали неправильную коллекцию, у Флеша будут все шансы его обогнать.
Вот тут визуально очень хорошо показана разница: http://www.youtube.com/watch?v=qWR1l8y-erw
__________________
Hell is the possibility of sanity

Старый 19.12.2012, 19:00
-De- вне форума Посмотреть профиль Отправить личное сообщение для -De- Найти все сообщения от -De-
  № 45  
Ответить с цитированием
-De-
 
Аватар для -De-

блогер
Регистрация: Oct 2005
Адрес: Днепродзержинск - город Брежнева и других логопедов
Сообщений: 1,421
Записей в блоге: 4
Отправить сообщение для -De- с помощью ICQ Отправить сообщение для -De- с помощью Skype™
Это как раз на с++ можно особо не париться насчёт скорости, а флэш это как раз один из последних оплотов микрооптимизаций. Т.к. пытаются делать что-то достаточно сложное, для чего флэш, собсно не создавался. И вставки с++ на флэш обычно нельзя в принципе сделать.
__________________
Бобры отвечают на вопросы не потому, что знают на них ответы; они отвечают потому, что их спрашивают.

Старый 19.12.2012, 21:42
expl вне форума Посмотреть профиль Отправить личное сообщение для expl Найти все сообщения от expl
  № 46  
Ответить с цитированием
expl

блогер
Регистрация: Feb 2006
Сообщений: 1,474
Записей в блоге: 3
Пример вспомнил:
Нужна была реализация A* на as3
Нашёл либу на хабре
Прогнал на своём поле - в 5 раз медленнее обычного волнового алгоритма
Полез внутрь и очень удивился - после добавления элемента в всписок открытых - они сортировали его методом sort!
Вообще вместо массива там должна была бы быть куча, реализующая очередь с приоритетом - и сложность _этого места в коде_ вместо n*log n была бы log n. Но зачем же - А* - он же быстрый, какая разница какую структуру для хранения выбрать!

Тогда я не стал лепить кучу - просто сделал бинарную вставку вместо сортировки (поиск места вставки log n + вставка splice - n). Не смотря на линейную сложность самдой вставки splice - оно отработало в 10 раз быстрее волнового алгоритма (видимо за счёт нативности splice). Так то, если руководствоваться одной сложностью - можно было просто без бинарного поиска - обычным влепить.

Короче - небольшая модификация работы со структурой данных - 5 * 10 * 100 = 5000% прироста скорости. И после этого должно быть всё равно какой структурой пользоваться?

Цитата:
не проще ли переложить его на другой функционал или на другой язык
- Не проще - поменять структуру как раз проще, чем переписывать и делать связки между кусками на разных языках
- для флеша обычно это не возможно - иначе оно во флешплеере в вебе работать не будет. Да, там есть возможность с алхимией(была бесплатной по крайней мере) и на С++ загнать и либы для работы со звуком и кодировкой PNG/JPEG делались - но надо было попотеть чтобы оное срастить и был выигрыш
- на другом языке пишут обычно, когда уже реализовали эффективный алгоритм на текущем и не хватает.

На практике чаще всего приходилось оптимизировать/выбирать работу со структурами при (не касаясь рендеринга - чисто вычисления):
- поиске пути
- сотрировке объектов в изометрии
- поиске всяких областей подсветки, прокладке дорог при строительстве в социалках
- выборке данных из модели (тут оптимизировать приходится редко, но между ними встречаются сложные соотношения, надо подключать мозги, чтобы, например не сравнивать параметры каждого из 1000 элементов в магазине с каждым из 100 в инвентаре в каждом кадре)


Последний раз редактировалось expl; 19.12.2012 в 22:09.
Старый 19.12.2012, 22:30
Korchy вне форума Посмотреть профиль Отправить личное сообщение для Korchy Найти все сообщения от Korchy
  № 47  
Ответить с цитированием
Korchy
 
Аватар для Korchy

Регистрация: May 2011
Сообщений: 301
Записей в блоге: 2
2 expl
Цитата:
Сообщение от expl Посмотреть сообщение
Пример вспомнил:
Нужна была реализация A* на as3
Вот этот пример понятен, спасибо.
__________________
interplanety

Создать новую тему Ответ Часовой пояс GMT +4, время: 22:49.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 22:49.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.