栈分配比堆分配的优点

原文

1,堆分配(GC或非GC)总是要求同步共享资源.
2,堆分配(GC或非GC)的高速缓存利用率很差(GC涉及大量降低利用率高速缓存行).
3,堆分配(gc或非gc)永远不是O(1).大的分配需要从有非线性复杂性的系统请求内存(sbrk,mmap等)的syscalls.

栈分配只是加个整数指针(现代处理器还有特殊的栈优化,使栈操作/调用/返回减少到几乎为零).此外,由于是密集使用的资源,其高速缓存利用率是巨大的,并且由于它是线本资源,所以在高速缓存行上,一般不存在竞争.
栈分配的主要缺点是其大小有限及可能的栈溢出风险.

posted @ 2022-11-16 21:47  zjh6  阅读(18)  评论(0)    收藏  举报  来源