为什么要锁定Memory

因为OS为了 让跟多的进程能够宏观同时运行 需要在Virtual Memory和 Memory之间做动态透明的数据转移

比如把长时间不用的页给移动到外面 虚拟内存 用到时 在用页面置换算法啥的 这样子那么原来的内存可能会移动位置

甚至 我们用到他时 他可能在Virtual Memory中 还要在往内存调 那这个肯定是很费时间的

而游戏实时性要求很高 肯定是不行的 所以 当我们要往 视频帧缓存中读取或写数据时 一定要 锁定他

不让OS在我们读取 或者写入表面时 换那个表面在内存中的位置 

 

但在下一次 时 缓存的位置有可能被移动到别的位置

PS:我感觉我猜 一般内存置换 只会移动堆区的 栈区应该不会移动吧 因为堆区 没办法 直接访问

是通过指针 或者引用 间接寻址的 这样即便动内存位置 他的逻辑位置还在 

 

1、锁定内存是实时应用程序存在的最重要的问题之一。在实时环境中,进程必须能够保证可连续驻留在内存中,以缩短延迟并防止换页和交换。“

 

2.为什么锁定一般LockMemory()函数参数都是帧缓存的二次指针呢

因为前面我们说了  这些Buffer在内存中的位置会变化 我们要每次都修改

指向该缓存的指针的值 就要用到二次指针

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值