TGViewer
HowProgrammingWorks - JavaScript and Node.js Programming HowProgrammingWorks - JavaScript and Node.js Programming @howprogrammingworks · 6.51K subscribers
Post #1800 2.79K
В Node.js для очередей используется FixedQueue на базе CircularBuffer. Он оптимизирован для V8, на базе списка массивов фиксированной длины по 2048 элементов. Это гораздо лучше, чем просто push/shift на массиве, когда массив постоянно меняет длину и память перераспределяется. Но все же очень неоптимально, потому, что нам для очереди нужно добавлять только в голову списка, а брать только с хвоста, не нужно по кругу бегать в буфере. Они неправильно выбрали структуру данных, тут не нужно было циркулярный буффер реализовывать, тут нужно использовать Unrolled List, эффективнее и проще. В текущей реализации, много лишнего кода, когнитивная нагрузка выше, там битовая маска используется, и вконце буфера один элемент всегда undefined, вот этот лишний undefined - как раз не страшно, но циркулярная машинерия медленнее.
Тут есть 4 варианта кода, чтобы разобраться в вопросе: 1 - наивная очередь, 2 - очередь на списках, 3 - очередь на циркулярном буффере, 4 - очередь на развернутом списке. Для курса по паттернам я сделаю лекцию где мы подробне это разберем и составим сравнительную таблицу, для разных реализаций, где что оптимально использовать - https://github.com/HowProgrammingWorks/Queue/tree/main/JavaScript
  • 👍 17
  • ❤ 4
  • 🔥 1
More from @howprogrammingworks
  1. Oct 4, 2026На кого учиться, если все профессии отберут роботы? Где пределы экспансии искусственного и…
  2. Oct 4, 2026Объем текста и объем кода должны заставлять нас не махнуть рукой, а заставлять ии делать м…
  3. Oct 3, 2026https://youtu.be/I5ILntVSjkQ
  4. Oct 2, 2026Dashboard with real-time monitoring Released in reslop v0.2.6 https://github.com/tshemsedi…
  5. Oct 2, 2026video post
  6. Oct 1, 2026Что AI научился делать действительно хорошо, так это максимально отсрочить катастрофу в пр…
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 →