The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

fast.js - более быстрая реализация типовых функций JavaScript

24.06.2014 23:34

Компания Codemix представила JavaScript-библиотеку fast.js, в рамках которой подготовлена подборка типовых функций JavaScript, отличающихся от встроенных функций более высокой производительностью. Библиотека предоставляет замену для таких методов, как .map(), .reduce(), .bind(), .forEach(), .indexOf(), .concat() и .clone(). Более высокая производительность достигается за счёт устранения излишних усложнений, связанных с необходимостью учета всех крайних случаев, учитываемых во встроенных функциях в силу требований спецификации ECMAScript.

Тестирование показало, что представленная в fast.js реализация .lastIndexOf() оказалась на 62.80% быстрее нативного варианта в тесте из трех итераций, на 74.38% в тесте из 10 итераций и на 20.55% в тесте из 1000 итераций. Для .indexOf() выигрыш в производительности составил 66.22%, 41.36% и 1.78%. Для .bind() - 746.69% и 204.75%. Для .map() - 263.07%. Для .reduce() - 103.12%. Для .forEach() - 118.38%. Для .concat() - 319.90%.

  1. Главная ссылка к новости (https://github.com/codemix/fas...)
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/40076-javascript
Ключевые слова: javascript, optimization
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (31) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Railgun (?), 23:47, 24/06/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • +3 +/
    Ничего не понятно с этими процентами. Где-то по 3 числа, где-то по 2, где-то по 1. И непонятно, к каким испытаниям эти числа относятся. А раз непонятно, значит, и смысла в этих числах (и, значит, в половине поста) нет.
     
     
  • 2.2, Аноним (-), 23:50, 24/06/2014 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Проценты непонятны?
     
     
  • 3.9, Vkni (ok), 06:32, 25/06/2014 [^] [^^] [^^^] [ответить]  
  • +/
    > Проценты непонятны?

    Количество значащих цифр выбрано от балды.

     
  • 2.8, Vkni (ok), 06:30, 25/06/2014 [^] [^^] [^^^] [ответить]  
  • +/
    Да понятно это - эксперименты люди ставить не умеют, что такое погрешность не знают.
     
     
  • 3.12, Аноним (-), 11:48, 25/06/2014 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Что вы хотели от яваскриптеров? Освоил письменность - напиши библиотеку!
     
     
  • 4.21, Vkni (ok), 19:39, 25/06/2014 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Практически "это лекция для колхозников, а вы - дачник, шагайте отсюда!". :-) :-) :-)
     

  • 1.3, Ононим (?), 23:52, 24/06/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • +17 +/
    Напоминает шутку с хабра, где выяснили, что в пыхе echo быстрее print на 20%, так как в echo букв на 20% меньше, чем в print.
     
  • 1.4, rob pike (?), 00:29, 25/06/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • +5 +/
    > достигается за счёт устранения излишних усложнений, связанных с необходимостью учета всех крайних случаев

    Изобрели срезание углов, молодцы!

     
     
  • 2.10, Аноним (-), 09:50, 25/06/2014 [^] [^^] [^^^] [ответить]  
  • +/
    радиусы закруглений
     
  • 2.11, Аноним (-), 11:31, 25/06/2014 [^] [^^] [^^^] [ответить]  
  • +2 +/
    А ведь если их урезанный жабаскриптовый код переделать обратно в нативный, то будет ещё быстрее. Отличный способ саморекламы — взять некий код, убрать проверку входных данных и/или спец. обработку частных случаев, выложить в инет и хвалиться, как со всеми этими "улучшениями" всё стало быстрее работать. :)
     
  • 2.29, bOOster (?), 12:12, 27/06/2014 [^] [^^] [^^^] [ответить]  
  • +1 +/
    ВОт дыр то в библиотеке будет...
     

  • 1.5, YetAnotherOnanym (ok), 01:00, 25/06/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • +7 +/
    Ну да, крайние случаи учитывают только замшелые ретроградные лохи. Пастыри стад ботов в предвкушении.
     
     
  • 2.14, angra (ok), 12:23, 25/06/2014 [^] [^^] [^^^] [ответить]  
  • +/
    Хорошо, что ты такой умный не являешься мэром какого-нибудь большого города, а то наставил бы  конюшен вместо части автостоянок, ведь надо учитывать крайние случаи.
    Еще можно было бы понять такую позицию, если бы речь шла о пользовательских данных, но речь ведь идет о структурах созданных программистами да еще и в ЯП, который толком не умеет модули.
     
     
  • 3.18, Аноним (-), 15:44, 25/06/2014 [^] [^^] [^^^] [ответить]  
  • +/
    > речь ведь идет о структурах созданных программистами да еще и в ЯП

    Речь идёт о структурах в ЯП c весьма упо^Wспецифической типизацией, поощряющей манкипатчинг и позволяющей выделывать прочие штуки, которые заметно повышают вероятность возникновения тех самых крайних случаев, от которых так старательно избавлялись авторы сабжа.

     
  • 2.30, bOOster (?), 12:14, 27/06/2014 [^] [^^] [^^^] [ответить]  
  • +/
    > Ну да, крайние случаи учитывают только замшелые ретроградные лохи. Пастыри стад ботов
    > в предвкушении.

    Такой как ты уже пробрался в OpenSSL.

     

  • 1.6, Аноним (-), 01:29, 25/06/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Интересно, надо сравнить с lodash...
     
  • 1.7, Аноним (-), 03:34, 25/06/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    33 минуты назад перезалили уже... работа кипит!
     
  • 1.15, COBA (?), 12:25, 25/06/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    А смысл в такой оптимизации. На 3-10 итерациях это незаметно, а на 1000 и более, где это как раз необходимо - прирост мизерный.
     
  • 1.16, SprintSet (?), 14:53, 25/06/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Срочно жду superfast.js & speed.js
     
     
  • 2.17, Andrey Mitrofanov (?), 15:40, 25/06/2014 [^] [^^] [^^^] [ответить]  
  • +/
    fastinternet.js, makemoneyfast.js, fastenurseatbelts.js
     
     
  • 3.19, Аноним (-), 16:56, 25/06/2014 [^] [^^] [^^^] [ответить]  
  • +/
    fast nurse at belts?
     
     
  • 4.20, Andrey Mitrofanov (?), 16:59, 25/06/2014 [^] [^^] [^^^] [ответить]  
  • +/
    > fast nurse at belts?

    en lar gey our ....

     

  • 1.22, Аноним (-), 19:57, 25/06/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Fast Джаву когда уже сделают?
     
  • 1.23, Аноним (-), 20:40, 25/06/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Не там фиксят, нужно исправлять стандарты.
     
     
  • 2.25, Аноним (-), 11:33, 26/06/2014 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Нужен другой язык
     
     
  • 3.26, an (??), 15:27, 26/06/2014 [^] [^^] [^^^] [ответить]  
  • +/
    Нужен новый язык, говорили линвисты глядя на C  - и родили паскаль. Где сейчас паскаль?

    Нужен новый язык, говорили лингвисты глядя на перл, и родили python, который к несчастью процветает, но глядя на него всем осилившим С/perl (а не только бейсик) опять хочется изобрести новый язык.

    Диалектика? Или синдром языковой неудовлетворенности?

     
     
  • 4.27, Аноним (-), 23:11, 26/06/2014 [^] [^^] [^^^] [ответить]  
  • +/
    Причём здесь языки программирования, и инэт скрипт (которому нет альтернатив) js с проблемами переизбытка ооп и нулевой типизацией?
     
  • 4.28, Led (ok), 00:29, 27/06/2014 [^] [^^] [^^^] [ответить]  
  • +/
    > Нужен новый язык, говорили линвисты глядя на C  - и родили
    > паскаль.

    Сам придумал?

     
     
  • 5.32, Аноним (-), 15:29, 27/06/2014 [^] [^^] [^^^] [ответить]  
  • +/
    > Сам придумал?

    Да как же, придумает он тебе Паскаль.

     
  • 4.34, crecrecevc (?), 22:11, 30/06/2014 [^] [^^] [^^^] [ответить]  
  • +/
    >Нужен новый язык, говорили линвисты глядя на C  - и родили паскаль.

    Паскаль это слегка усовершенствованный алгол.
    http://ru.wikipedia.org/wiki/Алгол
    Никаким С во времена алгола и близко не пахло.

    С это творение безграмотных любителей по принципу - запузырим всесто языка программирования что нибудь такое, что хоть чуть лучше ассемблера для хилого (даже для тех времен) железа какое у них было. Ну другим таким же оно и понравилось. Естественно.

    Но вы продолжайте знакомить нас со своими мыслями. Надо же знать как мыслит поколение фэйсбука.

     

  • 1.33, Аноним (-), 20:20, 27/06/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    хоть убей не пойму, как посимвольная переборка строки функций lastIndexOf и IndexOf в либе могут работать быстрее нативных. Может надо программистов интерпретатора пинать?
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру