Created
June 14, 2018 20:34
-
-
Save PavelDemyanenko/75be6392fd2281c4d8360df2fafc3288 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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