Javascript-форум (https://javascript.ru/forum/)
-   Ваши сайты и скрипты (https://javascript.ru/forum/project/)
-   -   Collection – фреймворк для управления данными (https://javascript.ru/forum/project/27848-collection-%E2%80%93-frejjmvork-dlya-upravleniya-dannymi.html)

qwerty-клавиатура 07.05.2013 21:28

???

qwerty-клавиатура 07.05.2013 21:32

зачем все встроенные методы оборачивать? если вызов пользовательской функции тысячу итераций подряд разница не сильна заметна с нативной, то если миллион раз прогнать, миллиард, мы уже увидеть уменьшение быстродействия в геометрической прогрессии

kobezzza 07.05.2013 22:57

qwerty-клавиатура, ты вообще о чём?) Для интерпретатора SQL (во всяком случае на таком уровне) нет необходимости строить дерево, но если бы ты внимательно изучил код, то увидел бы что никакой магии регулярок там нет, они используются исключительно для подготовки, а так код SQL преобразуется в последовательность токенов, которая затем выполняется.

Про какие встроенные методы говоришь? Какая потеря производительности?
Как я уже писал выше, в последней версии (3.9) использует специальный JIT компилятор (вот он то и деревья строит и блек джек с инлайнингом делает), что даёт прирост во всех браузерах в скорости минимум в 4 (а в некоторых случаях и в 10) по сравнению с нативными реализациями. Никакой геометрической прогрессии нет. И да, я прогонял на миллиарде.

Цитата:

JSON.parse( JSON.stringify(o) ); это хакирство быстрее чем
Ну у меня так и делается.

Вот реализация в исходниках:
Collection.clone = Collection.prototype._clone = function (obj) {
    if (JSON_IS_NOT_DEFINED) {
        throw new Error('Object JSON is not defined!');
    }

    return JSON.parse(JSON.stringify(obj));
};


ЗЫ: не хочу спорить и читать кучи несвязных постов о гадании по коду, задавай конкретные вопросы - я отвечу.

qwerty-клавиатура 07.05.2013 23:16

нативные

kobezzza 07.05.2013 23:18

Цитата:

Сообщение от qwerty-клавиатура (Сообщение 249482)
нативные

Ты можешь отвечать нормально?

kobezzza 10.05.2013 08:59

Цитата:

Сообщение от Дзен-трансгуманист (Сообщение 249703)
kobezzza,
Кстати, а почему не вот так:
Collection.clone = Collection.prototype._clone = JSON_IS_NOT_DEFINED ?
  function (obj) {
    throw new Error('Object JSON is not defined!');
  }:
  function (obj) {
    return JSON.parse(JSON.stringify(obj));
  };

json может возникнуть по ходу пьесы, или есть еще что-то, чего я не догоняю? :-?
(сорри за оффтоп)

Ответ гораздо проще, я тупо не заморачивался :) Эта функция вызывается у меня крайне редко при некоторых условиях и такое изменение видимых изменений в скорости не даёт вовсе, вот и оставил так поэтому:)


Часовой пояс GMT +3, время: 08:22.