07.02.2014, 09:28
|
|
Быдлокодер;)
|
|
Регистрация: 19.11.2010
Сообщений: 4,338
|
|
Сообщение от a.malitsky
|
kobezzza, не могу понять - либа тебе нужна по основной работе? Или тебе хватает энтузиазма делать её вместе с докой просто для себя, обучения и с призрачной надеждой что она станет популярной? Вы тут такой жути понаписали про оптимизацию что я могу только догадываться о количестве потраченных человеко-часов. Уже прежней версии нет, сайт сгинул, так ещё раз всё с нуля на гитхабе теперь написано...
Лично я в одном проекте уже третью версию использовал, сейчас буду применять четвёртую во втором.
|
Либа нужна мне (я её очень активно юзаю в своих проектах), пишу в первую очередь для себя. К сожалению у меня нет времени на раскрутку своего творения (не, если кто хочет помочь, то милости прошу ).
Про связь с прошлой версией: я не изменил ни концепцию ни структуру, а просто выкинул те вещи, которые не показали своей полезности на практике, т.е. с большой долей вероятности переход будет простым. Были конечно некоторые дизайнерские изменения в интерфейсах, но их не очень много.
Основные ломающие изменения:
1) Был выкинут кластер шаблонизации, т.к. он эволюционировал в отдельный мой проект Snakeskin.
2) Был убран SQL-парсер, т.к. на практике применять его у меня как то не очень вышло.
3) Выкинуты методы: stat, groupStat, copy, move, т.к. их легко создать на основе get/map/reduce/
4) Выкинуты некоторые вспомогательные методы, вроде resetCollection, вряд ли их кто использовал
5) push_ методы переименованы в add_.
Т.е. основная цель версии 4 была уменьшить кодовую базу и добиться высокой скорости создания/выполнения.
Теперь про сайт: по хорошему нужно создать сайт-описание на гитхабе, а домен collection-js.com привязать к нему, но у меня правда нет на это времени, поэтому я его прикрыл пока, т.к. там содержится устаревшая дока и написал полностью новую доку на гитхабе. Если честно не вижу особых проблем с этим, т.к. какая разница где лежит дока.
Пиши вопросы: я всегда оперативно на них отвечаю.
Последний раз редактировалось kobezzza, 07.02.2014 в 12:28.
|
|
07.02.2014, 15:29
|
|
Быдлокодер;)
|
|
Регистрация: 19.11.2010
Сообщений: 4,338
|
|
Выпустил обновление 4.0.3 с исправлениями некоторых найденых ошибок.
|
|
07.02.2014, 18:13
|
|
I am Student
|
|
Регистрация: 17.12.2011
Сообщений: 4,415
|
|
Сообщение от kobezzza
|
Либа нужна мне (я её очень активно юзаю в своих проектах), пишу в первую очередь для себя. К сожалению у меня нет времени на раскрутку своего творения (не, если кто хочет помочь, то милости прошу ).
|
запили статью на хабре с описанием как либа работает, я думаю будет лучшая реклама
__________________
Цитата:
|
Если ограничения и условия описываются как "коробка", то хитрость в том что бы найти именно коробку... Не думайте о чем то глобальном - найдите коробку.
|
|
|
07.02.2014, 18:17
|
|
Быдлокодер;)
|
|
Регистрация: 19.11.2010
Сообщений: 4,338
|
|
Сообщение от cyber
|
запили статью на хабре с описанием как либа работает, я думаю будет лучшая реклама
|
Говорю же, мне некогда, реал завал с делами Если бы написать статью это было пару часов, то тогда да, но на практике статья это минимум 3-4 полных дня (я говорю про себя конечно же ).
ЗЫ: чёто у мя сёня день релизов запил 4.1.0, где были улучшены интерфейсы методов indexOf, lastIndexOf, _drop.
Последний раз редактировалось kobezzza, 07.02.2014 в 18:24.
|
|
07.02.2014, 18:25
|
|
I am Student
|
|
Регистрация: 17.12.2011
Сообщений: 4,415
|
|
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
__________________
Цитата:
|
Если ограничения и условия описываются как "коробка", то хитрость в том что бы найти именно коробку... Не думайте о чем то глобальном - найдите коробку.
|
Последний раз редактировалось cyber, 07.02.2014 в 18:39.
|
|
07.02.2014, 18:39
|
|
Быдлокодер;)
|
|
Регистрация: 19.11.2010
Сообщений: 4,338
|
|
Сообщение от cyber
|
kobezzza, хотел спросить насчет реализации forEach, по сути этот метод только перебирает массивы и только по числовым индексам (без использования Object.keys или for in), почему он тогда медленнее подобной реализации (в хроме критически медленне) и что может не так быть в этой реализации?
function each(callback, context) {
var leng = this.length;
for(var i = 0; i < leng; i++) {
if(context)
callback.call(context, this[i], i, this);
else
callback(this[i], i, this);
}
}
|
Если я правильно тебя понял, то ты спрашиваешь, почему Array.prototype.forEach медленнее твоей реализации?
На самом деле нельзя сказать точно: медленнее или нет, т.к. в некоторых случаях JIT VM может эффективно скомпилить тот или иной код, а иногда нет. Лучше всех на данный момент с такими оптимизациями справляется ИЕ11.
Но в большинстве случаев падение скорости в нативных методах связано с тем, что стандартные массивы в JS - это на самом деле не массивы, а просто сахар над хешом.
https://github.com/kobezzza/Collecti...aster/profiler
Но на самом деле forEach не то место, где нужно смотреть, т.к. он быстрый сейчас везде. Большая разница в производительности на всяких выборках (всякие map, filter и т.д.).
Последний раз редактировалось kobezzza, 07.02.2014 в 18:43.
|
|
07.02.2014, 18:46
|
|
I am Student
|
|
Регистрация: 17.12.2011
Сообщений: 4,415
|
|
Сообщение от kobezzza
|
Но на самом деле forEach не то место, где нужно смотреть
|
ну если верить jspref то разница в 98% в хроме, это не значитель?
__________________
Цитата:
|
Если ограничения и условия описываются как "коробка", то хитрость в том что бы найти именно коробку... Не думайте о чем то глобальном - найдите коробку.
|
|
|
07.02.2014, 19:05
|
|
I am Student
|
|
Регистрация: 17.12.2011
Сообщений: 4,415
|
|
сделал тест
Цитата:
|
forEach 402
each 120
$C().forEach 129
|
__________________
Цитата:
|
Если ограничения и условия описываются как "коробка", то хитрость в том что бы найти именно коробку... Не думайте о чем то глобальном - найдите коробку.
|
|
|
07.02.2014, 19:20
|
|
Быдлокодер;)
|
|
Регистрация: 19.11.2010
Сообщений: 4,338
|
|
Сообщение от cyber
|
сделал тест
|
Странный результат, но всяко может быть
http://screencast.com/t/kTWjV15n5 вот результат замеров в 3-х браузерах на моей машинке.
Хотя повторюсь, что эти тесты все искусственные.
|
|
|
|