Цитата:
2) вопрос не про поисковые системы, а про твою мистическую супер-упер либу, поэтому опять ты слился. |
Цитата:
Цитата:
Цитата:
|
Цитата:
// Вызываем метод group, и параметром указываем условие, в итоге создастся новая коллекция с ключами true и false, которые будут содержать результат группировки .group(':el.age > 18') // Старше 18 .get('true') // Младше .get('false') // Можно делать ключи по более сложным условиям, // т.к. ключи создаются по возвращаемому параметру условия, // то можно создать множество ключей, например, с помощью тернарного оператора // (разумеется можно писать простые функции или юзать разбиение на атомарные через стек) .group(':el.age > 18 ? more18 : el.age < 12 ? less12 : less18') |
Проводил замеры создания инстанса, 1 миллион итераций.
Вышло примерно так: 1) ИЕ 10 ~ 15 сек 2) FF 16 ~ 20 сек 3) Chrome 22 ~ 24 сек 4) Opera 12 ~ 50 сек Начал оптимизировать логику конструктора: 1) Разложил if-ы по логической вложенности; 2) Заменил первичное копирование свойств с extend (рекурсивная реализация) на Object.create (с указанием прототипа, там где нет, написал свою реализацию). Итого: 1) Opera 12 ~ 0.4 сек 2) Chrome 22 ~ 0.8 сек 3) IE 10 ~ 1 сек 4) FF 16 ~ 1.4 сек Для теста на сафари 6 лень было мак брать (тем более его юзала мама:) ). Основные тормоза разумеется вызывала рекурсия. PS: после оптимизации логика конструктора осталась идентичной. |
Цитата:
Цитата:
|
Цитата:
Цитата:
|
Цитата:
Вывод: объекты, созданные в конструкторах, всегда должны иметь одинаковый набор свойств и не менять этот набор в течении жизни программы. Производительность увеличивается на порядки. А если сделать вывод более общим - писать код нужно так, как если вы бы писали его на C++ или Java, касаемо объектов и их конструкторов. |
Цитата:
|
Цитата:
Мое имхо такое: библиотеки должны в первую очередь обеспечивать высокую производительность в ущерб читабельности. Яркий тому пример - jQuery. |
> .groupLinks(параметр, сохраняем индексы).get(делаем запрос по вторичным индексам).
это псевдокод. что конкретно туда писать? в любом случае, похоже выборка будет O(n) > у тебя же это судя по всему делается сразу в конструкторе вызывая дополнительную не нужную нагрузку (и тормоза) зато при выборке не надо будет создавать индекс с нуля после каждого изменения состава коллекции, вызывая тем самым ещё большие тормоза. > вопрос не про поисковые системы, а про твою мистическую супер-упер либу она не супер и уж тем более не мистическая. она создаёт и поддерживает индексы, а также с их помощью поддерживается консистентность данных. > Гугли. что именно? > Тебе нет. почему? |
Часовой пояс GMT +3, время: 14:54. |