Цитата:
Про связь с прошлой версией: я не изменил ни концепцию ни структуру, а просто выкинул те вещи, которые не показали своей полезности на практике, т.е. с большой долей вероятности переход будет простым. Были конечно некоторые дизайнерские изменения в интерфейсах, но их не очень много. Основные ломающие изменения: 1) Был выкинут кластер шаблонизации, т.к. он эволюционировал в отдельный мой проект Snakeskin. 2) Был убран SQL-парсер, т.к. на практике применять его у меня как то не очень вышло. 3) Выкинуты методы: stat, groupStat, copy, move, т.к. их легко создать на основе get/map/reduce/ 4) Выкинуты некоторые вспомогательные методы, вроде resetCollection, вряд ли их кто использовал 5) push_ методы переименованы в add_. Т.е. основная цель версии 4 была уменьшить кодовую базу и добиться высокой скорости создания/выполнения. Теперь про сайт: по хорошему нужно создать сайт-описание на гитхабе, а домен collection-js.com привязать к нему, но у меня правда нет на это времени, поэтому я его прикрыл пока, т.к. там содержится устаревшая дока и написал полностью новую доку на гитхабе. Если честно не вижу особых проблем с этим, т.к. какая разница где лежит дока. Пиши вопросы: я всегда оперативно на них отвечаю. |
Выпустил обновление 4.0.3 с исправлениями некоторых найденых ошибок.
|
Цитата:
|
Цитата:
ЗЫ: чёто у мя сёня день релизов :) запил 4.1.0, где были улучшены интерфейсы методов indexOf, lastIndexOf, _drop. |
kobezzza, хотел спросить насчет реализации forEach, по сути этот метод только перебирает массивы и только по числовым индексам (без использования Object.keys или for in), почему он тогда медленнее подобной реализации (в хроме критически медленне) и что может не так быть в этой реализации?
function each(arr, callback, context) { for(var i = 0, leng = arr.length; i < leng; i++) { if(context) callback.call(context, arr[i], i, arr); else callback(arr[i], i, arr); } } сделал тест ради интереса http://jsperf.com/each-test-speed |
Цитата:
На самом деле нельзя сказать точно: медленнее или нет, т.к. в некоторых случаях JIT VM может эффективно скомпилить тот или иной код, а иногда нет. Лучше всех на данный момент с такими оптимизациями справляется ИЕ11. Но в большинстве случаев падение скорости в нативных методах связано с тем, что стандартные массивы в JS - это на самом деле не массивы, а просто сахар над хешом. Цитата:
Но на самом деле forEach не то место, где нужно смотреть, т.к. он быстрый сейчас везде. Большая разница в производительности на всяких выборках (всякие map, filter и т.д.). |
Цитата:
|
Цитата:
Посмотри тесты, что я тебе привёл по ссылке: https://github.com/kobezzza/Collecti...r/forEach.html сравнения forEach https://github.com/kobezzza/Collecti...filer/get.html get vs filter https://github.com/kobezzza/Collecti...WithCycle.html get vs filter внутри цикла Чтобы склонить репозитарий git clone [url]https://github.com/kobezzza/Collection[/url] |
сделал тест
Цитата:
|
Цитата:
http://screencast.com/t/kTWjV15n5 вот результат замеров в 3-х браузерах на моей машинке. Хотя повторюсь, что эти тесты все искусственные. |
Часовой пояс GMT +3, время: 21:28. |