Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Стоит-ли избавляться от длинных названий переменных при итоговой компиляции? (http://www.flasher.ru/forum/showthread.php?t=101530)

Torero 20.09.2007 16:23

Стоит-ли избавляться от длинных названий переменных при итоговой компиляции?
 
Декомпилом как-то не довелось заниматься, поэтому хочу поинтересоваться: компилирует-ли flash названия переменных, и влияют-ли они на размер ролика? Может стоит все эти "my_somevariable" до одной буквы уменьшить при компиляции?

etc 20.09.2007 16:25

На размер ролика — влияют. Но при zlib сжатии разница несущественна.
Гробить читабельность ради пары килобайт (это ого-го сколько названий переменных) бессмысленно.

Torero 20.09.2007 18:15

Спасибо.
Еще 1 вопросик из этой-же серии: Объявление переменных в начале скрипта нужно в сугубо эстетических целях или это как-то влияет на скорость его выполнения?

etc 20.09.2007 18:22

В каком смысле? Пример, пожалуйста.

lowka 20.09.2007 21:32

Цитата:

Сообщение от Torero
Еще 1 вопросик из этой-же серии: Объявление переменных в начале скрипта нужно в сугубо эстетических целях или это как-то влияет на скорость его выполнения?

Первое.

etc 20.09.2007 22:42

Вообще говоря, при компиляции все объявления выносятся наверх.

aQuestion 20.09.2007 22:48

Цитата:

Сообщение от __etc
Гробить читабельность ради пары килобайт (это ого-го сколько названий переменных) бессмысленно.

Какой-то чувак на кирупа.ком выложил не то плагин под эклипс не то настройки под мсвс чтобы прогонять ас через сишный или аналогичный прекомпилер. Ввиду давности темы детали не помню, но суть идеи сводилась к следующему:
Код:

#define myBeautifulVariableName s324dzz43

etc 20.09.2007 22:52

Мммм, не знаю, я опираюсь на «показания» собственного декомпилятора.

aQuestion 20.09.2007 23:01

я к тому что средства иметь красоту в *.ас и короткие имена в *.свф можно наверняка найти

etc 20.09.2007 23:04

Можно, но смысла мало.

Nirth 20.09.2007 23:52

Можно настроить Flex Builder чтобы перед компиляцией делал Refactoring и именовал переменные типа a1,a2...z999

В некоторых случаях может быть даже полезно, длиные имена еще и работают медленей...нечто подобное делается для JS например.

Но на практике я не сталкивался с такой проблемой, ибо код пишется так чтобы методы не пахали постоянно, а иногда что нибудь да запускалось бы(в смысле без setInterval, setTimeout, enterFrame и тд) может для игры какой нибудь и было бы полезно...

BlooDHounD 21.09.2007 15:19

и где найти эти чудо настройки? помоги :) очь. надо :)

Nirth 23.09.2007 09:38

какие настройки?

etc 23.09.2007 11:50

Рефакторинга перед компиляцией, конечно :)

Nirth 23.09.2007 19:47

аа
ну не знаю как в флексе. в TextMate можно регэкспы написать.

etc 23.09.2007 19:56

Приехали, блин.

Nirth 23.09.2007 20:04

=) Ну я же сказал что я никогда этим не занимался, и только предположил. В принципе TextMate очень расширяемая фигнюшка.

Кстати аналог для виндов и линукса - Vim

BlooDHounD 24.09.2007 12:36

Цитата:

Сообщение от Nirth
Можно настроить Flex Builder чтобы перед компиляцией делал Refactoring и именовал переменные типа a1,a2...z999

Вот и верь людям.

Torero 24.09.2007 18:17

По-идее, если не полениться и убить денек, проблема названий переменных, комментариев и лишних пробелов/табуляций влегкую решается майкрософтовскими vba-макросами.. Правда прийдется код перед компиляцией обрабатывать WORD-ом..
------
А если убить недельку, да еще и голову поломать немного, то можно научиться избавляться от лишних переменных.

Torero 09.10.2007 09:42

Цитата:

Сообщение от Torero
Еще 1 вопросик из этой-же серии: Объявление переменных в начале скрипта нужно в сугубо эстетических целях или это как-то влияет на скорость его выполнения?

Цитата:

Сообщение от __etc
Вообще говоря, при компиляции все объявления выносятся наверх.

Че-т вспомнился мне этот ответ..
Это получается, что 2 приведенных ниже кода расходуют одинаково ресурсов? Или все-таки не всегда они выносятся наверх?

Код:

if(a=="1"){
        var s:Sprite=new Sprite();
}else{
        var t:TextField=new TextField();
}

Код:

var s:Sprite;
var t:TextField
if(a=="1"){
        s=new Sprite();
}else{
        t=new TextField();
}


etc 09.10.2007 10:05

Всегда выносятся.
Если переменная используется несколько раз в различных условных блоках (циклах и т.п.), то её объявление необходимо вынести в начало.
Потому как двойные объявления недопустимы (хотя компилятор ограничивается только предом).


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

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