169 похожих чатов

А почему так плохо узнавать какие методы более быстрые для

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

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

к примеру я теперь знаю, что если у меня массив из много айдишек и я хочу проверять наличие айдишки в массиве, то я лучше заюзаю Set вместо arr.includes - для меня это не сильно дорого, и будет одним узким местом меньше на тот момент, когда я захочу оптимизировать профайлером

с промисами убедил, даже захотелось некоторый код на промисы переписать) особенно деструктуризация массива понравилась
поэтому и любопытствую :)


я мог бы подумать сам про ответ на этот вопрос и было бы что-то вроде:
- отвлекаешься на менее значащую ерунду, в тот момент когда надо думать о чём-то более важном
- нужно уже что-то быстро накидать и чем быстрее, тем лучше, потому что обычно надо вчера

1 ответов

4 просмотра

Одно дело знать асимптотику стандартных методов, типа Array::indexOf, Array::includes, Set::has, а другое пытаться выяснить что же быстрее Array::forEach или for of используя непонятный пример на jsperf. При этом картинка на вашем коде может быть совершенно другая, потому что на jsperfe был супер урезанный пример, который JIT просто заинлайнил или другим образом оптимизировал, а на вашем коде этого сделать не смог, потому что - 1000 причин почему. У меня была проблема с тем что Object.keys работал сравнительно быстро до определенного момента. Как только появлялся часто менющийся обьект с большим числом ключей, внезапно Object.keys иногда начал выполняться за 100мс. Это было найдено в профайлере и обьект был заменен на Map который в самом худшем раскладе работал в 100раз быстее а в обычном так же быстро как Object.keys.

Похожие вопросы

Обсуждают сегодня

здравствуйте. совершаю вот такую вещь: strcpy(line, (char)current_number); где current number — неподписанный шорт, line — массив чаров. ругань следующая: main.c:29:30: error...
Roberto's Ширгозиев
13
Можно попросить небольшое ревью кода? Тут немнога, я ничего интереснее не придумал, чем написать аналог tree в качестве практики с cmake. https://github.com/hrimov/tree-unix/...
Andrew Hrimov
11
Всем привет. Ребят подскажите пожалуйста. Вопрос по дизасемблировани. Начну с начала. У меня есть скомпилированная программа на ГО (я разработчик) - в ней есть защита лицензии...
Zloy
11
я не магистр хаскеля, но разве не может лейзи тип конвертнуться в не-лейзи запросив вычисление содержимого прям при инициализации?
deadgnom32 λ madao
100
@MrMiscipitlick А можешь макрос написать, который будет вычислять смещение относительно переданных меток? Просто .label1-.label2, и вернуть значение.
КТ315
35
А еще в перле можно уже @arr1 + @arr2?
Sergei Zhmylove
53
кто тебе сказал, что она угроблена? многие только начинают жизнь, после увольнения из Гугла, Майкрософта, Оракла,...
Alex Kom
9
В альтернативе у нас сидеть горбатиться на дядю в галерах, пока не помрешь или пока тебя не заменят более молодым сотрудником, который готов гребсти в два раза дешевле. Вот и ...
Кабан Кабанов
7
Привет всем. появился вопрос. Разрабатываю сайт, в данный момент он запущен. Хостинг beget. Добавляю на сайт яндекс метрику с помощью полей client-settings (взято отсюда http...
Andrew
2
Подобного рода ;Следующие три строки это директивы ассемблера, ;которые можно не задавать, т.к.работаем в Visual Studio. ;Символ ";" - это начало однострочного комментария ...
Егор Анелькин
3
Карта сайта