堆栈追踪论V8引擎工做原理

首先,请看图 javascript

1567131860219_10_24_18__08_30_2019.jpg
根据上图 2:9(throw) 6:3(hello) 9:1(world) 能够看出堆栈是根据执行函数的位置进行追踪

那么当运行一个js函数时v8引擎是如何进行工做的呢?java

v8引擎由两个主要模块组成:内存堆/调用堆栈node

内存堆用于分配内存地址 调用堆栈用于执行代码编程

调用栈是一个盒子,当执行一个函数时,它会将函数放置到栈顶!函数返回时则弹出 浏览器

1567133549003_10_52_26__08_30_2019.jpg

咱们都知道javascript是单线程编程语言,这意味着它只有一个调用堆栈编程语言

当执行如下代码时函数

1567134310941_11_01_53__08_30_2019.jpg

这个时候调用堆栈怎么了?ui

1567134363314_11_06_01__08_30_2019.jpg

当调用堆栈中有一个函数须要花费大量时间处理时,浏览器或node不能作任何事情,由于它被阻塞了 浏览器通常会询问你是否想关掉页面或者等待函数执行完成, 咱们能够在不阻塞ui和不使浏览器失去响应的状况下执行大量代码吗?线程

你猜cdn

相关文章
相关标签/搜索