Руководитель группы разработки интерфейсов
Профилирование Node.js или как мы разогналисьЧистяков Денис
«Преждевременная оптимизация — корень всех зол»
3 Дональд Кнут
Мало держите
Больше RPS!
Сервера не казенные
Вы какая-то промка Джанга и та
больше держитА если ДЦ упадет?
Сейчас средняя нагрузка за сутки — 80rps (≈7 000 000 просмотров)
9
Для примера на Е1 ≈3 200 000 просмотров
10
Во время коллапсов может подниматься до 800rps
11
Как назвать переменную???
Когда инвалидировать кэш???
Нет удобного инструмента для замера времени выполнения функций
14
С помощью Theseus удобно искать «горячие» места
16
Тормозила функция printf и мы устроили челендж
«Напиши свой printf с блэкджеком»
Максимально избегайте синхронного кода
18
Переносите хождение за общими данными в отдельный процесс
19
Node WebKit Agent
Node WebKit Agent
vm.runInNewContext() vs new Function()
22
node --trace_opt --trace_deopt --allow-natives-syntax test.js
23
try / catch
24
require
25
console.log
26
Кладезь полезных ссылок
• How to debug Node.js applications • The node.js Profiling Guide that Hasn’t Existed • Optimization Killers • Node WebKit Agent • Theseus • microtime
27
Руководитель группы разработки интерфейсов
[email protected] @denchistyakov
Спасибо! Вопросы?
Чистяков Денис