Unity 面试:性能优化之内存篇

前言

本文和传统的内存优化不一样,不是讲如何降低内存占用,而是讲编程开发中要注意的内存问题以及一些内存技术的演变与原理。

本文很长,目录如下:

 对惹,这里有一个游戏开发交流小组,希望大家可以点击进来一起交流一下开发经验呀!

1: Application进程的内存分段

应用程序的内存分为: 代码段, 数据段, 栈, 堆。

代码段:

用来存放代码的二进制指令与一些常量和常量字符串, 进程启动以后划分出来,把代码指令加载到代码段,一直占用内存,并且只读不可修改。

数据段:

用来存放代码中的静态全局变量,进程启动后,加载程序文件后,内存分配出来,并一直占用内存,直到进程结束。

栈:

 

栈有多大呢?其实栈的内存大小是相对比较小的,一般是由编译器生成执行文件的时候指定的,这个编程发布者可以改的,你在发布代码的时候,可以给编译器设置栈大小。一般栈默认是几百k, 有时候为了应对特殊的情况,配置编译器,把栈大小调整到1M甚至更大。栈溢出, 当栈的使用超过大小的额定范围,OS会抛出异常”栈溢出”,然后杀掉溢出的进程。比如一个算法是用递归写的,由于递归的层次比较深,导致栈溢出,这时候我们可以减少栈的内存使用或调整编译器来配置更大的栈。如图1.2 vs 编译C++时栈的配置:

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值