Javascript-форум (https://javascript.ru/forum/)
-   Ваши сайты и скрипты (https://javascript.ru/forum/project/)
-   -   Зацените (https://javascript.ru/forum/project/1542-zacenite.html)

Андрей Параничев 11.08.2008 00:38

ZoNT,
Не всегда работают быстрее чего? Вы понимаете, что для сравнение "быстрее чего работают глобальные переменные" вы подобрали некорректный пример?

Вообще, глобальные и локальные переменные используют не потому что одни быстрее других. Просто в разных случаях используются разные подходы. Естественно, что если функция внутри себя каждый раз объявляет одинаковый огромный массив, то это неверно и лучше хранить массив глобально. Тогда будет быстрее работать вызов этой функции. Я не спорю с этим и вы абсолютно правы на этот счет. Тем не менее, работа (изменение, добавление элементов, удаление элементов и т.д.) с локальными переменными происходит быстрее, чем с глобальными.

ZoNT 11.08.2008 00:45

Я этого и не говорил!!!

Вот кусок поста:
"Сообщение от ZoNT:
Быстрее, в некоторых случаях.

Dmitry A. Soshnikov: Во всех случаях."

Разве я не написал топикстартеру, что:
"В данном же случае приходится в функции каждый раз создавать огромный массив. Соответсвенно создать используемые данные всегда лучше 1 раз..."

Ключевые слова: "В данном же случае..."

Случай есть? Есть!
Я его написал? Не я...

"Dmitry A. Soshnikov: Во всех случаях." == false,
так как этот "Случай есть? Есть!"

Андрей Параничев 11.08.2008 00:55

ZoNT,
Мы с вами как глухой со слепым разговариваем. Я вам говорю, что функция будет быстрее работать с локальной переменной, чем с глобальной. А вы мне отвечаете, что функция, которая объявляет в себе огромный локальный массив будет работать медленнее, чем функция работающая с огромным глобальным массивом. Это очевидно. Но с локальной ссылкой на глобальный массив будет работать еще быстрее. Потому что работа с локальными переменными будет быстрее, чем с глобальными.

ZoNT 11.08.2008 00:58

Это тебе очевидно!!!

Но форум не твой личный!!!

На него заходят нубы и задают вопросы. И им надо разжовывать.
Понимаешь?

И утверждение "всегда быстрее", как видишь, неверно. Это очевидно...

ZoNT 11.08.2008 00:59

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

ZoNT 11.08.2008 01:00

И я в 19(20) лет был таким :) как Андрей (Dmitry)

Андрей Параничев 11.08.2008 01:13

ZoNT,
Я рад тому, что вы переросли меня. Я признаю, что ваша точка зрения - правильная. Точка зрения, что в конкретном случае скрипт будет быстрее работать, если функции будут использовать глобальные переменные. Тем не менее, формулировка "код функции всегда работает быстрее с локальными переменными, чем с глобальными" абсолютно верна.

ZoNT 11.08.2008 01:20

Нет, не верна.
Тут спорное место - "работает".
Это нечёткое определение.
И я под ним понимаю и инициализацию (которую я и предложил вынести в глобальный контекст, что повлекло за собой объявление переменной тоже в глобальном контексте).

А что под ним понимают другие люди, которые не понимают даже как устроен компьютер? Это знают только сами люди...

Надо уметь чётко формулировать не только вопросы, но и ответы. Иначе человек, котрому ты ответил поймёт в меру своей образованности.

Сформулируй так, чтобы нельзя было понять иначе (только одно толкование), тогда будешь прав...

Андрей Параничев 11.08.2008 01:29

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

ZoNT 11.08.2008 01:33

Вот так намного лучше!
Если бы эту формулировку топикстартер услышал раньше (а не "всегда быстрее"), он бы такой код не написал бы, и вопрос бы не задал...


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