Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 08.07.2014, 14:05
Профессор
Отправить личное сообщение для l-liava-l Посмотреть профиль Найти все сообщения от l-liava-l
 
Регистрация: 14.03.2012
Сообщений: 1,808

Самый быстрый javascript
Доброго времени суток!

javascript сам по себе должен быть быстрым (потому что красный, вааагггхх), но в некоторых операциях хочется еще быстрее.

Есть огроооомный массив скомпилиных dom элементов. Какой самый быстрый способ добавлять их в dom, при этом очищая контейнер в который кладем.

Как ускорить аримф операции с большим кол-вом цифр? мож побитовым сдвигом?

В таких нагруженных прогах не кошерно делать доступ через свойства обьекта? нид кэшировать в переменных или нет?
__________________
Научу себя плохому
Ответить с цитированием
  #2 (permalink)  
Старый 08.07.2014, 14:10
Отправить личное сообщение для Octane Посмотреть профиль Найти все сообщения от Octane  
Регистрация: 10.07.2008
Сообщений: 3,873

Сообщение от l-liava-l
Есть огроооомный массив скомпилиных dom элементов. Какой самый быстрый способ добавлять их в dom, при этом очищая контейнер в который кладем.
Помещаешь в нужное место <div style="display:none"> и апендишь в него свой documentFragment, потом по requestAnimationFrame показываешь этот блок.

Последний раз редактировалось Octane, 08.07.2014 в 14:12.
Ответить с цитированием
  #3 (permalink)  
Старый 08.07.2014, 14:10
Аватар для kobezzza
Быдлокодер;)
Отправить личное сообщение для kobezzza Посмотреть профиль Найти все сообщения от kobezzza
 
Регистрация: 19.11.2010
Сообщений: 4,338

Пишешь на С/С++, компилишь в ASM.js и будет тебе всё очень быстро

Когда реализуют структуры, массивы структур и типы примитивных данных, то можно будет сразу на asm.js лабать, но пока это ад.

А вообще тема сферична в вакууме: не нужно быть маньяком оптимизаций, а нужно просто писать хороший читаемый код. Обычно если что-то тормозит, то виной кривой алгоритм, а не возня на уровне синтаксиса.
__________________
kobezzza
code monkey
Ответить с цитированием
  #4 (permalink)  
Старый 08.07.2014, 14:35
Аватар для javascriptus-maximus-∆
Кандидат Javascript-наук
Отправить личное сообщение для javascriptus-maximus-∆ Посмотреть профиль Найти все сообщения от javascriptus-maximus-∆
 
Регистрация: 07.07.2014
Сообщений: 103

я называю это перфеционанизмом
в принцепе это двигатель прогресса как и лень
Ответить с цитированием
  #5 (permalink)  
Старый 08.07.2014, 15:20
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 28.03.2011
Сообщений: 5,418

Сообщение от kobezzza
Пишешь на С/С++,
вот верный ответ

точнее, пиши код статичным и низкоуровневым, а так же тестируй на бенчмарках.

Сообщение от l-liava-l
Как ускорить аримф операции с большим кол-вом цифр? мож побитовым сдвигом?
только замедлишь. лучше просто на 2 умножить

исчо было бы неплохо пользоваться поиском
Размеры функций
Ответить с цитированием
  #6 (permalink)  
Старый 11.07.2014, 00:54
Аватар для MallSerg
Профессор
Отправить личное сообщение для MallSerg Посмотреть профиль Найти все сообщения от MallSerg
 
Регистрация: 07.03.2011
Сообщений: 1,138

1. Преждевременная оптимизация зло. лучшее враг хорошего
2. Любая оптимизация начинается с нахождения узких мест (профилирование)
для этого существуют специальные инструменты встроенные в браузер
иначе можно потратить кучу времени на оптимизацию процесса который на 0.0001% влияет на производительность
Ответить с цитированием
  #7 (permalink)  
Старый 11.07.2014, 06:22
Профессор
Отправить личное сообщение для DjDiablo Посмотреть профиль Найти все сообщения от DjDiablo
 
Регистрация: 04.02.2011
Сообщений: 1,815

Цитата:
Какой самый быстрый способ добавлять их в dom, при этом очищая контейнер в который кладем.
Полно бенчарков. Но если в вкратце то когда элемент пустой то самый быстрый способ наполнить его это innerHTML, если изменить добавить/удалить что-то в непустом то при относительно небольшом количестве изменений это createElement/removeElement. С другой стороны innerHtml в последней версии firefox работает почти в 10 раз медленней, а вот в ie напротив innerHTML ощутимо вырывается вперед. Иными словами наиболее быстрый способ вставки будет зависеть от браузера.

Цитата:
Есть огроооомный массив скомпилиных dom элементов.
Если массив дум элементов реально огромный то ты уже накосячил. К примеру как быстро отрисовать таблицу из 100 000 строк ? Да очень просто, отрисуй только те строки которые должны быть видны на экране сейчас. У меня была такая задача, реально 100 000 отрисовываются и скроляться без малейших тормозов, Даже фильтрация с сортировкой работает в приемлемое время. Это возможно только потому что сортируется/фильтруется массив с данными а в дум попадает только крохотный фрагмент массива из 40 элементов способных вместится в экран. То есть нет никакого огромного массива скомпилинных дум элементов, мне хватает всего 40. Правда загрузка на клиент такой кучи данных дело весьма не быстрое и по уму все сортировки и фильтрации следовало бы делать силами БД, но в ТЗ требовали обязательно на клиенте.

Цитата:
В таких нагруженных прогах не кошерно делать доступ через свойства обьекта? нид кэшировать в переменных или нет?
Не понял вопроса.

В остальном.
Согласен c MailSerg, нужно искать узкие места через профилирование.
Согласен с kobezza. Если действительно есть потребность в максимально производительной работе с данными то это asm.js.

Стоит отметить что виртуальная машина Dart на 50% быстрее чем V8.
__________________
Лучше калымить в гандурасе чем гандурасить на колыме

Последний раз редактировалось DjDiablo, 11.07.2014 в 08:13.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Книга: JavaScript. Сильные стороны Magneto Учебные материалы 16 21.04.2013 15:28
Интерпретатор Java на JS kobezzza Оффтопик 24 11.10.2012 18:32
Первый Moscow JavaScript Meetup korenyushkin Общие вопросы Javascript 0 26.07.2011 15:23
Последние книги по JavaScript! monolithed Учебные материалы 7 26.10.2010 19:40
Выдвет ошибку JavaScript Ромио Opera, Safari и др. 4 21.10.2010 20:34