Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 27.12.2013, 07:51
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,583

Используй forEach и проч. когда удобно. Если производительность упрётся именно в этом месте - всегда можно будет переписать циклом. Но скорее всего этого никогда не понадобится.)
__________________
29375, 35
Ответить с цитированием
  #12 (permalink)  
Старый 27.12.2013, 08:32
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Antonius, если писать код руководствуясь только скоростью работы, то получится трудно-поддерживаемая груда кода. Кроме того, разные варианты отрабатывают в разных браузерах по-разному, или даже в разных версиях одного браузера.
__________________
В личку только с интересными предложениями
Ответить с цитированием
  #13 (permalink)  
Старый 27.12.2013, 08:45
Аспирант
Отправить личное сообщение для Antonius Посмотреть профиль Найти все сообщения от Antonius
 
Регистрация: 30.11.2013
Сообщений: 42

Сообщение от danik.js Посмотреть сообщение
Antonius, если писать код руководствуясь только скоростью работы, то получится трудно-поддерживаемая груда кода. Кроме того, разные варианты отрабатывают в разных браузерах по-разному, или даже в разных версиях одного браузера.
Да, приходится постоянно балансировать между читаемостью/поддерживаемостью и скоростью.

Однако в браузерах, доступных мне (okouser, это последние версии) тест http://jsperf.com/for-vs-foreach/111 показывает проигрыш forEach, в разной степени, иногда с небольшой разницей, иногда с внушительной, но он медленнее.

Кстати, да, еще можно руководствоваться такими соображениями — если действия, выполняемые в каждой итерации цикла, достаточно «дорогие» по производительности, то накладные расходы на организацию самого обхода массива существенного влияния на время выполнения не окажут.
Ответить с цитированием
  #14 (permalink)  
Старый 27.12.2013, 15:27
Аватар для cyber
I am Student
Отправить личное сообщение для cyber Посмотреть профиль Найти все сообщения от cyber
 
Регистрация: 17.12.2011
Сообщений: 4,415

okouser, по сути если нужно обработать массив на пару тысяч элементов то лучше использовать for (что вообще не является хорошо), а так разница в пару милесекунд http://jsfiddle.net/eT25E/
__________________
Цитата:
Если ограничения и условия описываются как "коробка", то хитрость в том что бы найти именно коробку... Не думайте о чем то глобальном - найдите коробку.
Ответить с цитированием
  #15 (permalink)  
Старый 27.12.2013, 16:00
Аватар для kobezzza
Быдлокодер;)
Отправить личное сообщение для kobezzza Посмотреть профиль Найти все сообщения от kobezzza
 
Регистрация: 19.11.2010
Сообщений: 4,338

Я в своё время заморочился, и написал свою реализацию forEach с JIT компиляцией, по скорости равна циклам.
__________________
kobezzza
code monkey

Последний раз редактировалось kobezzza, 27.12.2013 в 16:04.
Ответить с цитированием
  #16 (permalink)  
Старый 27.12.2013, 17:19
Аватар для cyber
I am Student
Отправить личное сообщение для cyber Посмотреть профиль Найти все сообщения от cyber
 
Регистрация: 17.12.2011
Сообщений: 4,415

kobezzza, поделишься?)
__________________
Цитата:
Если ограничения и условия описываются как "коробка", то хитрость в том что бы найти именно коробку... Не думайте о чем то глобальном - найдите коробку.
Ответить с цитированием
  #17 (permalink)  
Старый 27.12.2013, 17:30
Аспирант
Отправить личное сообщение для Antonius Посмотреть профиль Найти все сообщения от Antonius
 
Регистрация: 30.11.2013
Сообщений: 42

Сообщение от kobezzza Посмотреть сообщение
Я в своё время заморочился, и написал свою реализацию forEach с JIT компиляцией, по скорости равна циклам.
Откройте секрет, как можно со стороны скрипта влиять на JIT?
Ответить с цитированием
  #18 (permalink)  
Старый 27.12.2013, 18:18
Аватар для kobezzza
Быдлокодер;)
Отправить личное сообщение для kobezzza Посмотреть профиль Найти все сообщения от kobezzza
 
Регистрация: 19.11.2010
Сообщений: 4,338

Сообщение от cyber Посмотреть сообщение
kobezzza, поделишься?)
Как закончу работу над Snakeskin, то опубликую (там кое что допилить надо ещё и тестов понаписать).
__________________
kobezzza
code monkey
Ответить с цитированием
  #19 (permalink)  
Старый 27.12.2013, 18:24
Аватар для kobezzza
Быдлокодер;)
Отправить личное сообщение для kobezzza Посмотреть профиль Найти все сообщения от kobezzza
 
Регистрация: 19.11.2010
Сообщений: 4,338

Сообщение от Antonius Посмотреть сообщение
Откройте секрет, как можно со стороны скрипта влиять на JIT?
Я написал свой, он производит инлайнинг, декомпозицию, дополнительные кеширования и т.д. что в итоге позволяет нативному JIT максимально эффективно обрабатывать такие конструкции, в январе планирую описать в подробной статье, т.к. штука интересная оч получилась.
__________________
kobezzza
code monkey
Ответить с цитированием
  #20 (permalink)  
Старый 27.12.2013, 22:37
Аспирант
Отправить личное сообщение для Antonius Посмотреть профиль Найти все сообщения от Antonius
 
Регистрация: 30.11.2013
Сообщений: 42

Ждем января, значит Не пропустить бы.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Результать на ajax запрос какаято ерунда, вместо текста, почему? aRpi Общие вопросы Javascript 1 18.04.2011 13:13
Многомерный массив в json Л_Денис Общие вопросы Javascript 1 21.04.2010 21:43