- Культура разработки performance-first: https://tonsky.me/blog/performance-first/
- Бюджет скорости: https://wp-rocket.me/blog/performance-budgets/
- Performance mantra: http://www.brendangregg.com/blog/2018-06-30/benchmarking-checklist.html
- Rosetta Code - реализации задач на разных языках: http://rosettacode.org/wiki/Collections
- Статьи по основным структурам данных:
- Структуры данных с примерами на JS: https://habr.com/ru/post/310794/
- Выбор структур данных: https://habr.com/ru/post/339656/
- 10 типов структур данных, которые нужно знать + видео и упражнения: https://habr.com/ru/company/netologyru/blog/334914/
- Бенчмарк добавления и поиска в Array и Set: https://jsfiddle.net/p5zhfqa4/2/
_.transform
- аналогreduce
с досрочным выходом: https://lodash.com/docs/4.17.15#transform- Бенчмарк кубического корня: https://jsbench.me/9tkmz8nds2/1
- Мемоизация: https://github.com/darrylhodgins/typescript-memoize
- Shortcut fusion:
- Сравнение ленивых вычислений и нативной реализации в JS: https://jsbench.me/43kgs6ox63/1
- Ленивые вычисления в библиотеках:
- Трансдьюсеры в Ramda, RxJS, transducers-js:
- Copy-on-write в библиотеках:
- Использование линз Ramda в редьюсерах: https://levelup.gitconnected.com/simplify-redux-reducers-with-lenses-8ec6b2de3ae2
- Бенчмарк branch prediction: https://jsfiddle.net/0r6y5e7L/
- Скорость прямого и обратного направления чтения памяти при хэшировании строк:
- Issue на GitHub: darkskyapp/string-hash#12
- Бенчмарк для браузеров: https://jsperf.com/string-hash-speed
- Бенчмарк для Node.js: https://gist.github.com/victor-homyakov/bcb7d7911e4a388b1c810f8c3ce17bcf
- Разница в скорости доступа к массиву по строкам и столбцам: https://jsfiddle.net/3smxuh1o/
- Fly-weight объект в ExtJS: https://docs.sencha.com/extjs/6.2.0/modern/Ext.html#method-fly
- Нулевое потребление памяти в клиенте statsd: https://github.com/smira/go-statsd/blob/master/README.md#zero-memory-allocation
- Нулевое и околонулевое потребление памяти в log4j:
- Описание: https://logging.apache.org/log4j/2.x/manual/garbagefree.html
- Один из пулл-реквестов со снижением потребления памяти: apache/logging-log4j2#251
- Код: https://github.com/apache/logging-log4j2/blob/master/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/AbstractOutputStreamAppender.java#L164
- Ленивая инициализация тяжёлого кода: https://philipwalton.com/articles/idle-until-urgent/
- Сравнение скорости ES6 и ES5 в браузерах и Node.js: https://victor-homyakov.github.io/six-speed/
- Бенчмарк деструктурирования
useState()
: https://jsbench.me/5wkmyktgk2/1 - ConsString в V8: https://github.com/v8/v8/blob/5a2c53f9482e19d150303cd36d7ba04418e6cade/src/objects/string.tq#L37
- Мономорфизм в V8: https://habr.com/ru/post/303542/
- Разработчики Chromium анализируют производительность ES2015+: https://docs.google.com/document/d/1EA9EbfnydAmmU_lM8R_uEMQ-U_v4l9zulePSBkeYWmY
- Тонкости реализации некоторых фич JS в V8: https://github.com/v8/v8/tree/ce85e66a20813f2714b8cd7b09ce98035f3fcb53/src/builtins