Lokasi ngalangkungan proxy:   [ UP ]  
[Ngawartoskeun bug]   [Panyetelan cookie]                
Skip to content

Commit 1257431

Browse files
committed
feat: update articles
1 parent 899558b commit 1257431

51 files changed

Lines changed: 146 additions & 413 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

JavaScript/Babel/语法分析.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
[![返回目录](https://parg.co/USw)](https://parg.co/bxN)
1+
[![返回目录](https://i.postimg.cc/KvQbty96/image.png)](https://url.wx-coder.cn/lrKga)
22

33
# 基于 Babel 的 JavaScript 语法树构造与代码转化
44

JavaScript/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
![封面](https://coding.net/u/hoteam/p/Cache/git/raw/master/2017/8/1/1-roedigbmFjRYkZobdZWuKg.jpeg)
22

3-
# [现代 JavaScript 开发:语法基础与工程实践](https://parg.co/bxN)
3+
# [现代 JavaScript 开发:语法基础与工程实践](https://url.wx-coder.cn/lrKga)
44

55
`Copyright © 王下邀月熊`
66

JavaScript/TypeScript/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
[![返回目录](https://parg.co/USw)](https://parg.co/bxN)
1+
[![返回目录](https://i.postimg.cc/KvQbty96/image.png)](https://url.wx-coder.cn/lrKga)
22

33
# TypeScript 语法基础与工程实践
44

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
11
# JIT
22

33
![](https://s3.amazonaws.com/images.ponyfoo.com/uploads/addy-ad3b2ea8f9be48a18c4bdad5041a3237.png)
4+
5+
![](https://cdn-images-1.medium.com/max/2000/0*bN9YVBLw_tT1Xvte.)

JavaScript/V8 引擎/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
[![返回目录](https://parg.co/USw)](https://parg.co/bxN)
1+
[![返回目录](https://i.postimg.cc/KvQbty96/image.png)](https://url.wx-coder.cn/lrKga)
22

33

44

JavaScript/V8 引擎/V8 架构与优化.md

Lines changed: 0 additions & 3 deletions
This file was deleted.
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
# V8 中的内存管理
2+
3+
内存分为堆(heap)和栈(stack)。栈内存储简单数据类型,方便快速写入和读取数据。堆内存则可以存储复杂的数据类型。在访问数据时,先从栈内寻找相应数据的存储地址,再根据获得的地址,找到堆内该变量真正存储的内容读取出来。
4+
5+
在前端中,被存储在栈内的数据包括小数值型,string ,boolean 和复杂类型的地址索引。所谓小数值数据(small number), 即长度短于 32 位存储空间的 number 型数据。一些复杂的数据类型,诸如 Array,Object 等,是被存在堆中的。如果我们要获取一个已存储的对象 A,会先从栈中找到这个变量存储的地址,再根据该地址找到堆中相应的数据。
6+
7+
![](https://i.postimg.cc/J0GnS4dB/image.png)
8+
9+
简单的数据类型由于存储在栈中,读取写入速度相对复杂类型(存在堆中)会更快些。下面的 Demo 对比了存在堆中和栈中的写入性能:
10+
11+
```js
12+
function inStack() {
13+
let number = 1e5;
14+
var a;
15+
16+
while (number--) {
17+
a = 1;
18+
}
19+
}
20+
21+
var obj = {};
22+
function inHeap() {
23+
let number = 1e5;
24+
25+
while (number--) {
26+
obj.key = 1;
27+
}
28+
}
29+
```
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
# 内存泄露
2+
3+
# 数组
4+
5+
## 内存攻击
6+
7+
哈希的拉链算法在极端情况下也会造成严重的内存消耗。
8+
我们知道,良好的散列映射算法,可以讲数据均匀的映射到不同的地址。但如果我们掌握了这种映射规律而将不同的数据都映射到相同的地址所对应的链表中去,并且数据量足够大,将造成内存的严重损耗,读取和插入一条数据会中了链表的天生的缺陷而变的异常的慢最终拖垮内存。这就是我们所说的内存攻击。构造一个 JSON 对象,使该对象的 key 大量命中同一个地址指向的列表,附件为 JS 代码,只包含了一个特意构造的对象。

0 commit comments

Comments
 (0)