Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #31 (permalink)  
Старый 07.02.2014, 09:28
Аватар для kobezzza
Быдлокодер;)
Отправить личное сообщение для kobezzza Посмотреть профиль Найти все сообщения от kobezzza
 
Регистрация: 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
code monkey

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

Выпустил обновление 4.0.3 с исправлениями некоторых найденых ошибок.
__________________
kobezzza
code monkey
Ответить с цитированием
  #33 (permalink)  
Старый 07.02.2014, 18:13
Аватар для cyber
I am Student
Отправить личное сообщение для cyber Посмотреть профиль Найти все сообщения от cyber
 
Регистрация: 17.12.2011
Сообщений: 4,415

Сообщение от kobezzza
Либа нужна мне (я её очень активно юзаю в своих проектах), пишу в первую очередь для себя. К сожалению у меня нет времени на раскрутку своего творения (не, если кто хочет помочь, то милости прошу ).
запили статью на хабре с описанием как либа работает, я думаю будет лучшая реклама
__________________
Цитата:
Если ограничения и условия описываются как "коробка", то хитрость в том что бы найти именно коробку... Не думайте о чем то глобальном - найдите коробку.
Ответить с цитированием
  #34 (permalink)  
Старый 07.02.2014, 18:17
Аватар для kobezzza
Быдлокодер;)
Отправить личное сообщение для kobezzza Посмотреть профиль Найти все сообщения от kobezzza
 
Регистрация: 19.11.2010
Сообщений: 4,338

Сообщение от cyber Посмотреть сообщение
запили статью на хабре с описанием как либа работает, я думаю будет лучшая реклама
Говорю же, мне некогда, реал завал с делами Если бы написать статью это было пару часов, то тогда да, но на практике статья это минимум 3-4 полных дня (я говорю про себя конечно же).

ЗЫ: чёто у мя сёня день релизов запил 4.1.0, где были улучшены интерфейсы методов indexOf, lastIndexOf, _drop.
__________________
kobezzza
code monkey

Последний раз редактировалось kobezzza, 07.02.2014 в 18:24.
Ответить с цитированием
  #35 (permalink)  
Старый 07.02.2014, 18:25
Аватар для cyber
I am Student
Отправить личное сообщение для cyber Посмотреть профиль Найти все сообщения от cyber
 
Регистрация: 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.
Ответить с цитированием
  #36 (permalink)  
Старый 07.02.2014, 18:39
Аватар для kobezzza
Быдлокодер;)
Отправить личное сообщение для kobezzza Посмотреть профиль Найти все сообщения от kobezzza
 
Регистрация: 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 - это на самом деле не массивы, а просто сахар над хешом.

Сообщение от cyber Посмотреть сообщение
сделал тест ради интереса http://jsperf.com/each-test-speed
https://github.com/kobezzza/Collecti...aster/profiler

Но на самом деле forEach не то место, где нужно смотреть, т.к. он быстрый сейчас везде. Большая разница в производительности на всяких выборках (всякие map, filter и т.д.).
__________________
kobezzza
code monkey

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

Сообщение от kobezzza
Но на самом деле forEach не то место, где нужно смотреть
ну если верить jspref то разница в 98% в хроме, это не значитель?
__________________
Цитата:
Если ограничения и условия описываются как "коробка", то хитрость в том что бы найти именно коробку... Не думайте о чем то глобальном - найдите коробку.
Ответить с цитированием
  #38 (permalink)  
Старый 07.02.2014, 18:48
Аватар для kobezzza
Быдлокодер;)
Отправить личное сообщение для kobezzza Посмотреть профиль Найти все сообщения от kobezzza
 
Регистрация: 19.11.2010
Сообщений: 4,338

Сообщение от cyber Посмотреть сообщение
ну если верить jspref то разница в 98% в хроме, это не значитель?
JSperf запускает твой тест в цикле, т.е. по сути у тебя тестируется не скорость forEach, а скорость forEach внутри цикла и это уже другая история

Посмотри тесты, что я тебе привёл по ссылке:
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]
__________________
kobezzza
code monkey

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

сделал тест
Цитата:
forEach 402
each 120
$C().forEach 129
__________________
Цитата:
Если ограничения и условия описываются как "коробка", то хитрость в том что бы найти именно коробку... Не думайте о чем то глобальном - найдите коробку.
Ответить с цитированием
  #40 (permalink)  
Старый 07.02.2014, 19:20
Аватар для kobezzza
Быдлокодер;)
Отправить личное сообщение для kobezzza Посмотреть профиль Найти все сообщения от kobezzza
 
Регистрация: 19.11.2010
Сообщений: 4,338

Сообщение от cyber Посмотреть сообщение
сделал тест
Странный результат, но всяко может быть
http://screencast.com/t/kTWjV15n5 вот результат замеров в 3-х браузерах на моей машинке.

Хотя повторюсь, что эти тесты все искусственные.
__________________
kobezzza
code monkey
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Закрытие и открытие дива по клику OLDBOY Общие вопросы Javascript 30 28.09.2016 19:41
как обновлять collection каждые 5 секунд sergey_magic Backbone.js 1 29.07.2013 14:31
Collection – фреймворк для управления данными kobezzza Ваши сайты и скрипты 155 10.05.2013 08:59
Удаление всех options в select Ceргей Элементы интерфейса 9 28.11.2012 08:36