![]() |
|
Модераторы: Sardar, Aliance |
![]()
|
|
| sergejzr |
|
|||
![]() Un salsero Профиль Группа: Админ Сообщений: 13285 Регистрация: 10.2.2004 Где: Германия г .Ганновер Репутация: 10 Всего: 360 |
Хочу изменить переменную MyVar.
Необходимо сделать это так:
После этого MyVar должна принять изменённое значение. Как это ещё можно сделать не прибегая к обьектам? |
|||
|
||||
| Gregof |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 117 Регистрация: 3.6.2004 Репутация: 1 Всего: 12 |
Нет без объектов этого сделать нельзя.
А зачем так? Чем плох подобный вариант:
--------------------
Может поздно, может рано, нет у времени стоп-крана... (Чайф) |
|||
|
||||
| sergejzr |
|
|||
![]() Un salsero Профиль Группа: Админ Сообщений: 13285 Регистрация: 10.2.2004 Где: Германия г .Ганновер Репутация: 10 Всего: 360 |
Надо бы несколько локалных переменных в функции пересадить. Около 30. и делать это несколько раз в разных местах функции...
|
|||
|
||||
| Sardar |
|
|||
![]() Бегун ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 6986 Регистрация: 19.4.2002 Где: Нидерланды, Groni ngen Репутация: 78 Всего: 317 |
Примитивы всегда передаются по значению, обьекты по ссылке.
Почему нельзя использовать обьекты? Смахивает на изврат... -------------------- Опыт - сын ошибок трудных © А. С. Пушкин Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik Оценить мои качества можно тут. |
|||
|
||||
| sergejzr |
|
|||
![]() Un salsero Профиль Группа: Админ Сообщений: 13285 Регистрация: 10.2.2004 Где: Германия г .Ганновер Репутация: 10 Всего: 360 |
Да, просто не хотел в цикле использовать вызовы аттрибутов обьекта.
ведь Object.value это тоже самое, что Object[value]. А там опять хеши итд. тормоза короче Вот я иинициализирую локальную и с ней работаю. А если таких локальных 30? каждый раз надо инитиализировать... вот и хотел сделать в функции. Вроде как не совсем изврат Я уже решил проблему совсем другим подходом |
|||
|
||||
| Sardar |
|
|||
![]() Бегун ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 6986 Регистрация: 19.4.2002 Где: Нидерланды, Groni ngen Репутация: 78 Всего: 317 |
Ну тогда приоткрою занавесу тайны
Видим что все локальные переменные являются свойствами обьекта window. А хеш таблицы ну очень быстры для поиска, потому то их и юзают -------------------- Опыт - сын ошибок трудных © А. С. Пушкин Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik Оценить мои качества можно тут. |
|||
|
||||
| sergejzr |
|
||||
![]() Un salsero Профиль Группа: Админ Сообщений: 13285 Регистрация: 10.2.2004 Где: Германия г .Ганновер Репутация: 10 Всего: 360 |
Это да, но зачем мне искать то, что у меня уже есть? Ну и потом, если юзать обьекты - 2 раза перессылаемся
Но дело не в том, что это правильно/неправильно. Просто быстрее. Даже в Си если мы опустим указатели, прога ускоряется. А в яваскрипте это намного ярче выражено. Во время обработки события мыши например мне без разницы это время. Ведь если оно произойдёт, значит юзер сам этого захотел. Но если там цикл автоматом обрабатывается, то каждый такой ненужный переход стоит ресурсов. С мира по нитке, а в итоге ускорение происходит... А то, что переменные по умолчанию глобальные, стоило мне сегодня целого дня Оказалось, что пара переменных не была задекларирована с var и пересаживалась при переставке языка |
||||
|
|||||
| Aliance |
|
|||
![]() I ♥ <script> ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 6418 Регистрация: 2.8.2004 Где: spb Репутация: 55 Всего: 137 |
Мдя...использование хэш-таблиц наоборот УВЕЛИЧИВАЕТ скорость... |
|||
|
||||
| Sardar |
|
||||
![]() Бегун ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 6986 Регистрация: 19.4.2002 Где: Нидерланды, Groni ngen Репутация: 78 Всего: 317 |
И какими наблюдениями ты пришел к этому выводу?
Поменяй оба участка кода местами и увидишь, что всегда тормозит последний - ему меньше памяти достается Уменьши количество создаваемых переменных и ты увидишь, что оба цикла выполняются с одинаковым количеством времени. Другое дело что у тебя никогда не будет более 1000 переменых в одном скрипте Вывод: подобная оптимизация - ловля блох Надо оптимизировать алгоритм. Например иногда народ создает массив элементов, а потом ищет по нему последовательным поиском. Быстрее будет хештаблица(обьект). -------------------- Опыт - сын ошибок трудных © А. С. Пушкин Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik Оценить мои качества можно тут. |
||||
|
|||||
| sergejzr |
|
||||||||||
![]() Un salsero Профиль Группа: Админ Сообщений: 13285 Регистрация: 10.2.2004 Где: Германия г .Ганновер Репутация: 10 Всего: 360 |
Значит ты удтверждаешь, что код
Медленней, чем
Потому что хэш увеличивает скорость? Может я изначально неправильно вопрос поставил? Или мы друг друга не поняли Добавлено @ 23:23
Я и не говорю, что это нам много даст, но почему бы не оптимировать? Я просто иногда не могу уснуть зная, что ещё микросекунду мона выжать Добавлено @ 23:24
я мысленно перевожу в Си, И примерно представляю, что кроется за каждым вызовом хэш функции Это сообщение отредактировал(а) sergej.z - 29.9.2004, 23:16 |
||||||||||
|
|||||||||||
| Sardar |
|
|||
![]() Бегун ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 6986 Регистрация: 19.4.2002 Где: Нидерланды, Groni ngen Репутация: 78 Всего: 317 |
Утверждений не было Во всех скриптовых языках с динамическими типами ипользуют хеш таблицы для хранения переменных. Т.е. test="bla" и test.bla="bla" это все лежит в хештаблицах. Xеш таблица очень быстра когда не заполненна, а переменных у тебя не больше пары десятков, так что даже простенькую хешь таблицу ты не загрузишь. Впрочем это дело вкуса... -------------------- Опыт - сын ошибок трудных © А. С. Пушкин Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik Оценить мои качества можно тут. |
|||
|
||||
| sergejzr |
|
|||
![]() Un salsero Профиль Группа: Админ Сообщений: 13285 Регистрация: 10.2.2004 Где: Германия г .Ганновер Репутация: 10 Всего: 360 |
нет, я Aliance имел в виду |
|||
|
||||
| <Spawn> |
|
||||||
![]() Око кары:) ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2776 Регистрация: 29.1.2003 Где: Екатеринбург Репутация: нет Всего: 64 |
Имеется ввиду, что хеш-таблицы работают быстрее чем:
Так как не требуется последовательного перебора данных.
Вот этого делать я бы не советовал: итерпретируемый и компилируемый код это несколько разные вещи. Это сообщение отредактировал(а) <Spawn> - 30.9.2004, 11:52 -------------------- "Для некоторых людей программирование является такой же внутренней потребностью, подобно тому, как коровы дают молоко, или писатели стремятся писать" - Николай Безруков. |
||||||
|
|||||||
| sergejzr |
|
|||
![]() Un salsero Профиль Группа: Админ Сообщений: 13285 Регистрация: 10.2.2004 Где: Германия г .Ганновер Репутация: 10 Всего: 360 |
Естественно разные, но когда я програмлю на Си, я тоже стараюсь операции на асме представить. Так как всё в конечном к тому сводится. И не надо говорить, что это неправильно Если скорость очень важна, то это единственный метод (при наличии оптимального алгоритма конечно). |
|||
|
||||
| sergejzr |
|
||||
![]() Un salsero Профиль Группа: Админ Сообщений: 13285 Регистрация: 10.2.2004 Где: Германия г .Ганновер Репутация: 10 Всего: 360 |
В таком случае, что ты имел в виду этим предложением касательно моего вопроса?
Ладно, Sardar ответил на мой вопрос Тему мона закрывать |
||||
|
|||||
![]()
|
| Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | JavaScript: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |