c – 堆栈上保留的数组大小是否影响除内存使用之外的任何其他资
发布时间:2020-12-16 10:01:22 所属栏目:百科 来源:网络整理
导读:这仅仅是出于兴趣,我个人使用C Builder 2009 假设我分配:wchar_t Buffer [32]或者我分配wchar_t Buffer [512] 第二个调用会分配更多内存,因此您可能会认为第二个调用在内存使用方面更昂贵. 但是,通过这种方式分配更多内存还有其他可能吗?是否涉及更多说明
这仅仅是出于兴趣,我个人使用C Builder 2009
假设我分配:wchar_t Buffer [32]或者我分配wchar_t Buffer [512] 第二个调用会分配更多内存,因此您可能会认为第二个调用在内存使用方面更昂贵. 但是,通过这种方式分配更多内存还有其他可能吗?是否涉及更多说明? CPU使用率更高? 就是想 ? 解决方法
这是”分配”堆栈内存.所有这些都需要调整堆栈指针.如果你写一个像这样的函数:
void foo() { char c[32]; ... } 生成的程序集看起来像(在64位计算机上): .cfi_startproc pushq %rbp .cfi_def_cfa_offset 16 .cfi_offset 6,-16 movq %rsp,%rbp .cfi_def_cfa_register 6 subq $48,%rsp // This is the actual "allocation" on the stack 如果将其更改为char c [512],则唯一改变的是: subq $528,%rsp // Allocation of 512 bytes on stack CPU指令或时间没有区别.唯一的区别是第二次使用了更多的有限数量的堆栈内存. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
推荐文章
站长推荐
- 【react】--------------flux-------------【劉】
- Oracle AQ / Streams在我的情况下有用吗?
- ruby-on-rails – Rails正则表达式警告:字符类有
- cocos2d-x接入GooglePlay IAB(In-app Billing)和
- regex – 正则表达式,用于定义一些二进制序列
- Ajax入门例子
- ruby-on-rails – Do Rails控制器URL为我编码unn
- Attachment_fu或Paperclip for Rails3
- iphone – iOS:从plist文件加载图像
- ruby-on-rails – 如何仅为列更新的子集更新模型
热点阅读