TGViewer
Defront — про фронтенд-разработку и не только Defront — про фронтенд-разработку и не только @defront · 5.04K subscribers
Post #392 3.14K
Прочитал статью Андрея Мелихова про погоню за производительностью в JavaScript-приложениях — "Микрооптимизации производительности и JavaScript".

Андрей в статье на хороших примерах показывает, почему разработчики js-движков призывают писать идиоматичный код. Причина в том, что работающие сегодня оптимизации завтра могут стать деоптимизациями из-за обновления движка или api платформы. Если преимущество в несколько миллисекунд, действительно, важно для проекта, то только тогда стоит задуматься об оптимизациях или о переписывании узкого горла на более низкоуровневом языке.

Добавлю ещё своих мыслей. В те годы, когда в Node.js были популярны микрооптимизации, появился шуточный термин "CrankShaftScript" (CrankShaft движок v8, который использовался в Node.js до версии 8.3). Этим термином называли js-код, который был написан так, чтобы JIT генерировал быстрый машинный код. Когда v8 перешёл на Turbofan, эти оптимизации стали бесполезны, так как новый JIT-компилятор научился генерировать эффективный машинный код из идиоматичного js-кода.

Хочу закончить пост фразой из статьи: "Иначе говоря, не нужно оптимизировать там, где ещё нет проблемы."

#js #performance #musings

https://medium.com/devschacht/optimizations-and-javascript-f8e060d3eae3
https://stackoverflow.com/questions/44764777/what-is-crankshaftscript-in-node-js
Medium Микроптимизации производительности и JavaScript Недавно в комментариях на Hexlet я поучаствовал в дискуссии на тему «Что важнее — оптимизации производительности или качество кода?» Если…
More from @defront
  1. Jan 7, 2024Channel name was changed to «Defront — про фронтенд-разработку и не только»
  2. Feb 24, 2022Про войну в Украине Шлю лучи поддержки братьям и сёстрам украинцам. В моём окружении нет н…
  3. Feb 23, 2022Qwik — возобновляемый JavaScript-фреймворк Райан Карниато поделился своими мыслями после р…
  4. Feb 22, 2022Обработка ошибок с помощью reportError Стэфан Джудис рассказал про малоизвестный метод для…
  5. Feb 21, 2022Выбор библиотеки по её размеру Владимир Клепов рассказал про подводные камни выбора библио…
  6. Feb 10, 2022Time-travel debugging в Svelte Сэм Ван Тассел рассказал про DeLorian — новый инструмент дл…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →