- v8如何执行JavaScript代码?
- 如何构建和使用v8的调试工具d8?
- v8是怎么通过内联缓存来提升函数执行效率?
- 几种常见内存问题的解决策略?
浏览器原理
仅仅打开了1个页面,为什么有4个进程?
现在的浏览器是多进程, 浏览器进程、网络进程、GPU进程、渲染进程。 还有插件进程。
问题: 更高资源占用、更复杂体系架构
单进程:不稳定(出错时整个线程中断)、不流畅、不安全
IPC, 进程间通信
栈空间和堆空间:数据是如何存储的?**
JavaScript 是一种弱类型的、动态的语言。
- 支持隐式类型转换的语言称为弱类型语言
- 可以使用同一个变量保存不同类型的数据。
在 JavaScript 的执行过程中, 主要有三种类型内存空间,分别是代码空间、栈空间和堆空间。
- 原始类型的数据值都是直接保存在“栈”中的,引用类型的值是存放在“堆”中的。
JavaScript 引擎需要用栈来维护程序执行期间上下文的状态,如果栈空间大了话,所有的数据都存放在栈空间里面,那么会影响到上下文切换的效率,进而又影响到整个程序的执行效率。
**