![]() |
|
Модераторы: Sardar, Aliance |
![]()
|
|
| Иль |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 544 Регистрация: 3.3.2005 Где: Москва Репутация: 2 Всего: 14 |
По скрипту получается, что в переменной теряется ссылка на нужную ноду документа.
Как считаете, что лучше, создать новую переменную и заранее сохранить в ней ссылку на ноду или лишний раз вызвать document.getElementById("q"). Сам считаю, что производительнее создать переменную, тк наслышан, что DOM медлител, да и код получается компактнее. Я конечно понимаю, что это мелочи и что сборщик мусора все подчистит, но интересно. -------------------- Ты виндусятник?... А я да. |
|||
|
||||
| diam |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 348 Регистрация: 23.1.2005 Где: Екатеринбург Репутация: 6 Всего: 16 |
Если честно, я разницы в скорости не ощущаю особо.
Когда загрузится вся страница - всё летает. Поэтому я бы исходил из соображений удобства.IMHO. |
|||
|
||||
| sergejzr |
|
|||
![]() Un salsero Профиль Группа: Админ Сообщений: 13285 Регистрация: 10.2.2004 Где: Германия г .Ганновер Репутация: 10 Всего: 360 |
У нас в ФАКе есть пример таймера. Поэксперементируй на разных браузерах и выложи сюда результат. Интересно посмотреть будет
Добавлено @ 15:56 http://vingrad.ru/JAVASCRIPT-JS-001270 |
|||
|
||||
| Иль |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 544 Регистрация: 3.3.2005 Где: Москва Репутация: 2 Всего: 14 |
Да я тоже так делаю, но хочется чуток подумнеть А и правда, сейчас протестю через функцию, чтоб сборщик мусора также задействовать. Сейчас только условия придумаю... -------------------- Ты виндусятник?... А я да. |
|||
|
||||
| Иль |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 544 Регистрация: 3.3.2005 Где: Москва Репутация: 2 Всего: 14 |
И вот, что я вам скажу: переменная и сборщик мусора форева.
Итог 1 - лучше лишняя переменная, чем лишний раз DOM дергать. Итог 2 - лучше с десяток глобальных переменных с сылками на нужные и всегда существующие ноды заранее создать, чем в каждой функции document.getElementById("ид") на них применять. В коде ниже проверте на адекватность мои функции s1 и s2
Sardar, хотел в твоем топике запостить (про обсуждение о топике про прототипы, объекты и переменные), но потом подумал, что не в тему. А теперь думаю, что вроде и пригодится, если, конечно выводы сделал правильные. -------------------- Ты виндусятник?... А я да. |
|||
|
||||
| sergejzr |
|
|||
![]() Un salsero Профиль Группа: Админ Сообщений: 13285 Регистрация: 10.2.2004 Где: Германия г .Ганновер Репутация: 10 Всего: 360 |
ээээ А результаты покажешь?
|
|||
|
||||
| Иль |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 544 Регистрация: 3.3.2005 Где: Москва Репутация: 2 Всего: 14 |
Ребят, да я там в функциях s1 и s2 столько лишних тяжолых операций намутил, что результаты не совсем адекватны, но вот они браузер - переменная на getElementById ИЕ - 210 на 250мс - средее значении при стабильной дельте FF - 280 на 297мс - значение стабильное при стабильной же дельте (ой, а разница то минимальна Это сообщение отредактировал(а) Иль - 31.5.2005, 17:28 -------------------- Ты виндусятник?... А я да. |
|||
|
||||
| sergejzr |
|
|||
![]() Un salsero Профиль Группа: Админ Сообщений: 13285 Регистрация: 10.2.2004 Где: Германия г .Ганновер Репутация: 10 Всего: 360 |
Ну чего то такого следовало ожидать в принципе...
Предположу однако, что appendChild сloneNode removeChild Занимают большинство времени. |
|||
|
||||
| Иль |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 544 Регистрация: 3.3.2005 Где: Москва Репутация: 2 Всего: 14 |
А ведь если это учесть, то получается, что разница в результатах сильно возврастет. Сейчас попробую облегчить код и проверить Добавлено @ 17:38 Я в шоке. Может я чего не так делаю, может сборщик мусора нас всех обхитрил Я вот так изменил тестовые функции
и получается, что на переменную уходит стабильно 0мс, а на getElementById 30-45мс и в ИЕ и в Лисе Это сообщение отредактировал(а) Иль - 24.6.2005, 10:30 -------------------- Ты виндусятник?... А я да. |
||||
|
|||||
| Sardar |
|
|||
![]() Бегун ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 6986 Регистрация: 19.4.2002 Где: Нидерланды, Groni ngen Репутация: 78 Всего: 317 |
Естествено сохранив ссылку в переменной мы получим прирост производительности. Но это актуально для анимаций, что на JS редко делаються, в обычных скриптах скорость(пара миллисекунд) не так важна, потому не сохраняю ссылок.
Если фанатично подойти к скорости, то не нужно создавать собственных обьектов, ведь на поиск переменной по имени и в полях требуеться время, т.е.
-------------------- Опыт - сын ошибок трудных © А. С. Пушкин Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik Оценить мои качества можно тут. |
|||
|
||||
| Иль |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 544 Регистрация: 3.3.2005 Где: Москва Репутация: 2 Всего: 14 |
Не, все верно. Увеличил число итераций на два нуля (в строковом представлении
ИЕ - 450 на 3000мс FF - 220 на 3300мс -------------------- Ты виндусятник?... А я да. |
|||
|
||||
| sergejzr |
|
|||
![]() Un salsero Профиль Группа: Админ Сообщений: 13285 Регистрация: 10.2.2004 Где: Германия г .Ганновер Репутация: 10 Всего: 360 |
50 мс/1000 = .05 микросекунд на ссылку ИМХО таким можно и пренебреч
Добавлено @ 17:54
Это ты сборщик мусора изнасиловал |
|||
|
||||
| Иль |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 544 Регистрация: 3.3.2005 Где: Москва Репутация: 2 Всего: 14 |
Да, верно, можно забыть, но нужно знать! Sardar, ты, наверно, уже знаешь мои пристрастия Добавлено @ 17:58
Не, проверел на выносливость извращенным способом -------------------- Ты виндусятник?... А я да. |
||||
|
|||||
![]()
|
| Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | JavaScript: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |