Skip to content

Instantly share code, notes, and snippets.

@PavelDemyanenko
Created June 14, 2018 20:34
Show Gist options
  • Save PavelDemyanenko/75be6392fd2281c4d8360df2fafc3288 to your computer and use it in GitHub Desktop.
Save PavelDemyanenko/75be6392fd2281c4d8360df2fafc3288 to your computer and use it in GitHub Desktop.
https://medium.com/piterjs/announce26-917b2eb6b267
A7 data server
контроль теплоснобжения А7 системы
Что такое А7:
data base + applications server = fast big data server
db -> vm+control accsess =>> extenstion, graphs == 1m in memory 50k transactions (couchDB in speed perf)
a7 systems store data in counters for graphics and user actions
why JS+C++?
task was to add an programming language
a) each object in db added functions (js func to server)
b) js triggers for before, after and timer
c) added reactivity for big data
online change of data structure => changing online (all metadata changes+inheritance)
privileges: classic + access flags
scripts have access type e.g tcp, file write
a7 is to sync all staff they have
type in db, they have they own byte machine
Знай свой JIT (яндекс.Деньги)
Зачем это все?
-более эффективный код
-анализ стороннего кода
.jscodeshift (recommended)
ats -> machine code -> JIT (спекулитивная оптимизация) (деоптимизация)
ignition (check in proccess)
- потреблеине памяти
- оптимизировать код
вячеслав егоров 2016 год holy js (обмануть компилятор)
мономорфность для object -> hidden class
adding property will change hidden class
node—allow-native-syntax
%havesamemap(‘a’:0}, {‘b’, :1}); == false
мономорфное состоняие => полиморфное состоняие = замедление производительности
(adding properties (f(o1))) e.g f(o1,o2);
v8 => 6 types of arrays
arrays work only for one way
array-like objects (arguments document.querySelectorAll)
func => aray.prot.map.call(x,f); (..rest)
GC -> last step
подача байт-кода
LLVM плох для динамических языков
итог:
три вида оптимизации:
1 алгоритмические оптимизации
2 специфичные для языка оптимизации(информация о типах)
3 специфичные для движка (обвесить метриками)
Кнут: “Преждевременная оптимизация корень всех бед”
Q: typescript
A: позволяет соблюдать мономорфность
baseline (холодные запуски, исполнение тестов для не в октане, а в пользовательской среде)
Тормозит ли мой интерфейс
Long task API для метрик интерфейса
следующий отдых на природе
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment