• v8如何执行JavaScript代码?
  • 如何构建和使用v8的调试工具d8?
  • v8是怎么通过内联缓存来提升函数执行效率?
  • 几种常见内存问题的解决策略?

[v8]原理 - 图1

浏览器原理

仅仅打开了1个页面,为什么有4个进程?
现在的浏览器是多进程, 浏览器进程、网络进程、GPU进程、渲染进程。 还有插件进程。
问题: 更高资源占用、更复杂体系架构
单进程:不稳定(出错时整个线程中断)、不流畅、不安全
IPC, 进程间通信

栈空间和堆空间:数据是如何存储的?**
JavaScript 是一种弱类型的、动态的语言。

  • 支持隐式类型转换的语言称为弱类型语言
  • 可以使用同一个变量保存不同类型的数据。

在 JavaScript 的执行过程中, 主要有三种类型内存空间,分别是代码空间、栈空间和堆空间。

  • 原始类型的数据值都是直接保存在“栈”中的,引用类型的值是存放在“堆”中的。

JavaScript 引擎需要用栈来维护程序执行期间上下文的状态,如果栈空间大了话,所有的数据都存放在栈空间里面,那么会影响到上下文切换的效率,进而又影响到整个程序的执行效率。

**

v8原理