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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 15.01.2010, 23:07
Cos вне форума Посмотреть профиль Отправить личное сообщение для Cos Найти все сообщения от Cos
  № 1  
Ответить с цитированием
Cos

Регистрация: Jan 2009
Сообщений: 20
По умолчанию Быстродействие

В различных методах class`а много циклов. Понятное дело, что в каждом из них есть локальные счетчики (var i:int = 0). Вот.

Можно ли i обявить private static var?

Можно то конешно оно можно и скорость повысится, но вдруг во флеш появятся потоки или захочу класс переписать на Java? И, вообще, нормально ли таким спсобом оптимизировать? Не будет ли в будущем проблем?

Старый 15.01.2010, 23:21
Psycho Tiger вне форума Посмотреть профиль Отправить личное сообщение для Psycho Tiger Найти все сообщения от Psycho Tiger
  № 2  
Ответить с цитированием
Psycho Tiger
 
Аватар для Psycho Tiger

блогер
Регистрация: Jun 2005
Адрес: Toronto
Сообщений: 6,601
Записей в блоге: 17
Оптимизации не будет, будет деоптимизация.
Локальные переменные бегают в разы быстрее, чем глобальные.

Старый 16.01.2010, 00:39
Cos вне форума Посмотреть профиль Отправить личное сообщение для Cos Найти все сообщения от Cos
  № 3  
Ответить с цитированием
Cos

Регистрация: Jan 2009
Сообщений: 20
Ну, хорошо. Не private static var, а просто private var.
То есть каждый экземпляр имеет свойство i (и j, если понадобится).

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

По-моему выгода очевидная.

Старый 16.01.2010, 00:54
VVall вне форума Посмотреть профиль Отправить личное сообщение для VVall Найти все сообщения от VVall
  № 4  
Ответить с цитированием
VVall

Регистрация: Feb 2009
Сообщений: 1,195
Вы можете сделать тест и оценить выгоду самостоятельно. Это займёт всего пять минут.

Старый 16.01.2010, 01:33
expl вне форума Посмотреть профиль Отправить личное сообщение для expl Найти все сообщения от expl
  № 5  
Ответить с цитированием
expl

блогер
Регистрация: Feb 2006
Сообщений: 1,474
Записей в блоге: 3
В статик поля имеет смысл загонять более сложные объекты, которые МОЖНО ПОВТОРНО использовать - т.е. использовать один объект без пересоздания

А выносить переменные, хранящие примитивные типы вроде числа или булева, (помоему, не уверен, даже стороки-константы внутри функций компилятор как-то распознает и не пересоздает)
нет смысла - только увеличится время доступа - оно ощутимо меньше для переменных


Последний раз редактировалось expl; 16.01.2010 в 01:37.
Старый 16.01.2010, 11:41
Psycho Tiger вне форума Посмотреть профиль Отправить личное сообщение для Psycho Tiger Найти все сообщения от Psycho Tiger
  № 6  
Ответить с цитированием
Psycho Tiger
 
Аватар для Psycho Tiger

блогер
Регистрация: Jun 2005
Адрес: Toronto
Сообщений: 6,601
Записей в блоге: 17
Цитата:
Ну, хорошо. Не private static var, а просто private var.
Да хоть internal, прироста не будет.

Старый 16.01.2010, 12:38
mayakwd вне форума Посмотреть профиль Отправить личное сообщение для mayakwd Посетить домашнюю страницу mayakwd Найти все сообщения от mayakwd
  № 7  
Ответить с цитированием
mayakwd
 
Аватар для mayakwd

Регистрация: Jul 2008
Адрес: t:2, x: 0.76
Сообщений: 553
Отправить сообщение для mayakwd с помощью ICQ Отправить сообщение для mayakwd с помощью Skype™
Не майтесь ерундой. используйте локальные переменные для каждого блока свои собственные. Оптимизируйте сами циклы.

Статичные переменные не дадут прироста производительности, скорее наоборот.
__________________
Блог, Twitter
Брюзга.

Старый 16.01.2010, 13:53
cleptoman вне форума Посмотреть профиль Отправить личное сообщение для cleptoman Найти все сообщения от cleptoman
  № 8  
Ответить с цитированием
cleptoman
 
Аватар для cleptoman

блогер
Регистрация: Mar 2007
Сообщений: 1,291
Записей в блоге: 5
Отправить сообщение для cleptoman с помощью ICQ
Цитата:
В статик поля имеет смысл загонять более сложные объекты, которые МОЖНО ПОВТОРНО использовать - т.е. использовать один объект без пересоздания
о_О ..я думал статик - это свойство / метод класса
__________________
http://cleptoman.free-lance.ru
achivements: дважды благословлен на воровство. осеяный благодатью

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

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
Это, ну как бы вам сказать, создать локальную переменную численного типа и инициализировать ее занимает, ну, наверное наносекудны какие-нибудь. Т.е. чтобы даже потестить разницу вам надо будет создать что-то типа миллиона, а может и миллиарда локальных переменных. Может быть вы и не сделаете хуже вынеся i в поле класса, но писать код станет в разы неудобнее и никакого преимущества в смысле скорости вы не заметите. Кроме всего прочего, возможно, что циклы оптимизируются компилятором, и при этом если вам нужно будет писать новое значение при каждой итерации в поле класса вы потеряете эту оптимизацию... вобщем, идея бессмысленная
__________________
Hell is the possibility of sanity

Старый 16.01.2010, 18:11
Cos вне форума Посмотреть профиль Отправить личное сообщение для Cos Найти все сообщения от Cos
  № 10  
Ответить с цитированием
Cos

Регистрация: Jan 2009
Сообщений: 20
Ну вот я писал класс. Принимает много пар параметров типа x,y. В самой функции я для удобства создавал переменные dx, dy. И потом еще одну группу переменных на основе dx, dy. Код выглядел красиво и понятно (с мат точки зрения).

Но вот потом понял, что лучше вычислять dx всякий раз когда это требуется заного.
Только если значение dx потребуется более 20 раз, тогда имеет смысл создавать переменную. Кроме случаев, если переменная не содержит вычесленный квадрат, какие либо деления, разумеется.

А что касается счетчиков, то они нужны практически всегда и никто не будет думать, а что это за приватные свойства i и j в классе.

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

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

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


 


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


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