指针是放在栈上的
pull/190/head
Fanyjie 3 years ago committed by GitHub
parent 29d70053ae
commit 2ce699d7db
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -58,7 +58,7 @@ int* foo() {
写入方面:入栈比在堆上分配内存要快,因为入栈时操作系统无需分配新的空间,只需要将新数据放入栈顶即可。相比之下,在堆上分配内存则需要更多的工作,这是因为操作系统必须首先找到一块足够存放数据的内存空间,接着做一些记录为下一次分配做准备。
读取方面得益于CPU高速缓存使得处理器可以减少对内存的访问高速缓存和内存的访问速度差异在10倍以上栈数据往往可以直接存储在CPU高速缓存中而堆数据只能存储在内存中。访问堆上的数据比访问栈上的数据慢因为必须先访问堆再通过堆上的指针来访问内存。
读取方面得益于CPU高速缓存使得处理器可以减少对内存的访问高速缓存和内存的访问速度差异在10倍以上栈数据往往可以直接存储在CPU高速缓存中而堆数据只能存储在内存中。访问堆上的数据比访问栈上的数据慢因为必须先访问栈再通过栈上的指针来访问内存。
因此,处理器处理和分配在栈上数据会比在堆上的数据更加高效。

Loading…
Cancel
Save