Разделы презентаций


EventLoop in NodeJS

Содержание

More than 5 years production experience in web development.More than 1 year experience in EPAM Systems.Experience in pure JavaScript.Focus on writing SPA using React and Redux.Interest in Algorithms and Computer Science.Senior

Слайды и текст этой презентации

Слайд 1EventLoop in NodeJS
Sergey Avanesyan

EventLoop in NodeJSSergey Avanesyan

Слайд 2More than 5 years production experience in web development.
More than

1 year experience in EPAM Systems.
Experience in pure JavaScript.
Focus on

writing SPA using React and Redux.
Interest in Algorithms and Computer Science.


Senior software engineer

More than 5 years production experience in web development.More than 1 year experience in EPAM Systems.Experience in

Слайд 3GOALS
Understand how nodejs works under a hood
Allows better understand code
effectively

write back-end JavaScript high-load application

GOALSUnderstand how nodejs works under a hoodAllows better understand codeeffectively write back-end JavaScript high-load application

Слайд 4Nodejs architecture

Nodejs architecture

Слайд 5NodeJS architecture

NodeJS architecture

Слайд 6NodeJS architecture

NodeJS architecture

Слайд 7Eventloop

Eventloop

Слайд 8The event loop is what allows Node.js to perform non-blocking

I/O operations — despite the fact that JavaScript is single-threaded

— by offloading operations to the system kernel whenever possible.

The event loop is what allows Node.js to perform non-blocking I/O operations — despite the fact that

Слайд 9EventLoop structure

EventLoop structure

Слайд 10EventLoop structure and source code

EventLoop structure and source code

Слайд 11Example

Example

Слайд 12Initialization stage
>

Initialization stage>

Слайд 13Initialization stage
> START

Initialization stage> START

Слайд 14Initialization stage
> START

Initialization stage> START

Слайд 15Initialization stage
> START

Initialization stage> START

Слайд 16Initialization stage
> START

Initialization stage> START

Слайд 17Initialization stage
> START

Initialization stage> START

Слайд 18Initialization stage
> START

Initialization stage> START

Слайд 19Initialization stage
> START

Initialization stage> START

Слайд 20Initialization stage END
> START
END

Initialization stage END> START  END

Слайд 21First circle START: nextTickQueue
> START
END

First circle START: nextTickQueue> START  END

Слайд 22First circle: Other microtasks queue
> START
END
Next

Tick

First circle: Other microtasks queue> START  END  Next Tick

Слайд 23First circle
> START
END
Next Tick
Promise

First circle> START  END  Next Tick  Promise

Слайд 24First circle: nextTickQueue
> START
END
Next Tick

Promise

First circle: nextTickQueue> START  END  Next Tick  Promise

Слайд 25First circle: Phase timers
> START
END
Next Tick

Promise
Promise Next Tick

First circle: Phase timers> START  END  Next Tick  Promise  Promise Next Tick

Слайд 26First circle: nextTickQueue
> START
END
Next Tick

Promise
Promise Next Tick
setTimeout 1
setTimeout

2
First circle: nextTickQueue> START  END  Next Tick  Promise  Promise Next Tick  setTimeout

Слайд 27First circle: Other microtasks queue
> START
END
Next

Tick
Promise
Promise Next Tick
setTimeout 1

setTimeout 2
First circle: Other microtasks queue> START  END  Next Tick  Promise  Promise Next Tick

Слайд 28First circle: Phase pending callbacks
> START
END
Next

Tick
Promise
Promise Next Tick
setTimeout 1

setTimeout 2
First circle: Phase pending callbacks> START  END  Next Tick  Promise  Promise Next Tick

Слайд 29First circle: nextTickQueue
> START
END
Next Tick

Promise
Promise Next Tick
setTimeout 1
setTimeout

2
First circle: nextTickQueue> START  END  Next Tick  Promise  Promise Next Tick  setTimeout

Слайд 30First circle: Other microtasks queue
> START
END
Next

Tick
Promise
Promise Next Tick
setTimeout 1

setTimeout 2
First circle: Other microtasks queue> START  END  Next Tick  Promise  Promise Next Tick

Слайд 31First circle: phase idle, prepare
> START
END
Next

Tick
Promise
Promise Next Tick
setTimeout 1

setTimeout 2
First circle: phase idle, prepare> START  END  Next Tick  Promise  Promise Next Tick

Слайд 32First circle: nextTickQueue

First circle: nextTickQueue

Слайд 33First circle: Other microtasks queue
> START
END

Next Tick
Promise
Promise Next Tick
setTimeout

1
setTimeout 2
First circle: Other microtasks queue > START  END  Next Tick  Promise  Promise Next

Слайд 34First circle: phase poll
> START
END
Next Tick

Promise
Promise Next Tick
setTimeout 1

setTimeout 2
First circle: phase poll> START  END  Next Tick  Promise  Promise Next Tick

Слайд 35First circle: nextTickQueue
> START
END
Next Tick

Promise
Promise Next Tick
setTimeout 1
setTimeout

2
First circle: nextTickQueue> START  END  Next Tick  Promise  Promise Next Tick  setTimeout

Слайд 36First circle: Other microtasks queue
> START
END
Next

Tick
Promise
Promise Next Tick
setTimeout 1

setTimeout 2
First circle: Other microtasks queue> START  END  Next Tick  Promise  Promise Next Tick

Слайд 37First circle: check
> START
END
Next Tick

Promise
Promise Next Tick
setTimeout 1
setTimeout

2
First circle: check> START  END  Next Tick  Promise  Promise Next Tick  setTimeout

Слайд 38First circle: nextTickQueue
> START
END
Next Tick

Promise
Promise Next Tick
setTimeout 1
setTimeout

2
setImmediate
First circle: nextTickQueue> START  END  Next Tick  Promise  Promise Next Tick  setTimeout

Слайд 39First circle: other microtasks queue
> START
END
Next

Tick
Promise
Promise Next Tick
setTimeout 1

setTimeout 2
setImmediate
First circle: other microtasks queue> START  END  Next Tick  Promise  Promise Next Tick

Слайд 40First circle: phase close callbacks
> START
END
Next

Tick
Promise
Promise Next Tick
setTimeout 1

setTimeout 2
setImmediate
First circle: phase close callbacks> START  END  Next Tick  Promise  Promise Next Tick

Слайд 41First circle END
> START
END
Next Tick

Promise
Promise Next Tick
setTimeout 1
setTimeout

2
setImmediate
First circle END> START  END  Next Tick  Promise  Promise Next Tick  setTimeout

Слайд 42Second circle START: phase timers
> START
END
Next

Tick
Promise
Promise Next Tick
setTimeout 1

setTimeout 2
setImmediate
Second circle START: phase timers> START  END  Next Tick  Promise  Promise Next Tick

Слайд 43Second circle: phase pending callbacks
> START
END
Next

Tick
Promise
Promise Next Tick
setTimeout 1

setTimeout 2
setImmediate
Second circle: phase pending callbacks> START  END  Next Tick  Promise  Promise Next Tick

Слайд 44Second circle: idle, prepare
> START
END
Next Tick

Promise
Promise Next Tick
setTimeout 1

setTimeout 2
setImmediate
Second circle: idle, prepare> START  END  Next Tick  Promise  Promise Next Tick

Слайд 45Second circle: phase poll
> START
END
Next Tick

Promise
Promise Next Tick
setTimeout 1

setTimeout 2
setImmediate
Second circle: phase poll> START  END  Next Tick  Promise  Promise Next Tick

Слайд 46Second circle
> START
END
Next Tick
Promise

Promise Next Tick
setTimeout 1
setTimeout 2

setImmediate
Second circle> START  END  Next Tick  Promise  Promise Next Tick  setTimeout 1

Слайд 47Second circle: nextTickQueue
> START
END
Next Tick

Promise
Promise Next Tick
setTimeout 1
setTimeout

2
setImmediate
Second circle: nextTickQueue> START  END  Next Tick  Promise  Promise Next Tick  setTimeout

Слайд 48Second circle: other microtasks queue
> START
END
Next

Tick
Promise
Promise Next Tick
setTimeout 1

setTimeout 2
setImmediate
readFile Next Tick
Second circle: other microtasks queue> START  END  Next Tick  Promise  Promise Next Tick

Слайд 49Second circle: phase check
> START
END
Next Tick

Promise
Promise Next Tick
setTimeout 1

setTimeout 2
setImmediate
readFile Next Tick
Second circle: phase check> START  END  Next Tick  Promise  Promise Next Tick

Слайд 50Second circle: phase close callbacks
> START
END
Next

Tick
Promise
Promise Next Tick
setTimeout 1

setTimeout 2
setImmediate
readFile Next Tick
readFile setImmediate
Second circle: phase close callbacks> START  END  Next Tick  Promise  Promise Next Tick

Слайд 51Second circle END
> START
END
Next Tick

Promise
Promise Next Tick
setTimeout 1
setTimeout

2
setImmediate
readFile Next Tick
readFile setImmediate
Second circle END> START  END  Next Tick  Promise  Promise Next Tick  setTimeout

Слайд 52Third circle START: phase timers
> START
END
Next

Tick
Promise
Promise Next Tick
setTimeout 1

setTimeout 2
setImmediate
readFile Next Tick
readFile setImmediate
Third circle START: phase timers> START  END  Next Tick  Promise  Promise Next Tick

Слайд 53Third circle START: phase pending callbacks
> START
END

Next Tick
Promise
Promise Next Tick
setTimeout

1
setTimeout 2
setImmediate
readFile Next Tick
readFile setImmediate
readFile setTimeout
Third circle START: phase pending callbacks> START  END  Next Tick  Promise  Promise Next

Слайд 54Third circle START: phase idle, prepare
> START
END

Next Tick
Promise
Promise Next Tick
setTimeout

1
setTimeout 2
setImmediate
readFile Next Tick
readFile setImmediate
readFile setTimeout
Third circle START: phase idle, prepare> START  END  Next Tick  Promise  Promise Next

Слайд 55Third circle START: phase poll
> START
END
Next

Tick
Promise
Promise Next Tick
setTimeout 1

setTimeout 2
setImmediate
readFile Next Tick
readFile setImmediate
readFile setTimeout
Third circle START: phase poll> START  END  Next Tick  Promise  Promise Next Tick

Слайд 56Third circle START: phase check
> START
END
Next

Tick
Promise
Promise Next Tick
setTimeout 1

setTimeout 2
setImmediate
readFile Next Tick
readFile setImmediate
readFile setTimeout
Third circle START: phase check> START  END  Next Tick  Promise  Promise Next Tick

Слайд 57Third circle START: phase close callbacks
> START
END

Next Tick
Promise
Promise Next Tick
setTimeout

1
setTimeout 2
setImmediate
readFile Next Tick
readFile setImmediate
readFile setTimeout
Third circle START: phase close callbacks> START  END  Next Tick  Promise  Promise Next

Слайд 58Third circle END
> START
END
Next Tick

Promise
Promise Next Tick
setTimeout 1
setTimeout

2
setImmediate
readFile Next Tick
readFile setImmediate
readFile setTimeout
Third circle END> START  END  Next Tick  Promise  Promise Next Tick  setTimeout

Слайд 59Check loop alive condition

Check loop alive condition

Слайд 60Check loop alive condition

Check loop alive condition

Слайд 61Check loop alive condition: NO

Check loop alive condition: NO

Слайд 62EventLoop complete work

EventLoop complete work

Слайд 63threadpool

threadpool

Слайд 64Threadpool can be used to run user code and get

notified in the loop thread.
Its default size is 4,

but it can be changed at startup time by setting the UV_THREADPOOL_SIZE (process.env.UV_THREADPOOL_SIZE) environment variable to any value (the absolute maximum is 128).

Threadpool can be used to run user code and get notified in the loop thread. Its default

Слайд 65EventLoop and ThreadPool

EventLoop and ThreadPool

Слайд 66Example

Example

Слайд 67Example

Example

Слайд 68EventLoop and ThreadPool

EventLoop and ThreadPool

Слайд 69ThreadPool

ThreadPool

Слайд 70ThreadPool

ThreadPool

Слайд 71ThreadPool

ThreadPool

Слайд 72ThreadPool

ThreadPool

Слайд 73ThreadPool and EventLoop

ThreadPool and EventLoop

Слайд 74Example

Example

Слайд 75Example

Example

Слайд 76materials
https://epa.ms/eventloop

materialshttps://epa.ms/eventloop

Слайд 77Thank you for attention

Thank you for attention

Обратная связь

Если не удалось найти и скачать доклад-презентацию, Вы можете заказать его на нашем сайте. Мы постараемся найти нужный Вам материал и отправим по электронной почте. Не стесняйтесь обращаться к нам, если у вас возникли вопросы или пожелания:

Email: Нажмите что бы посмотреть 

Что такое TheSlide.ru?

Это сайт презентации, докладов, проектов в PowerPoint. Здесь удобно  хранить и делиться своими презентациями с другими пользователями.


Для правообладателей

Яндекс.Метрика