• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

C# 内存管理

c# 搞代码 4年前 (2022-01-09) 32次浏览 已收录 0个评论

Windows使用一个系统:虚拟寻址系统,该系

本文来源gao!%daima.com搞$代*!码网1

统把程序可用的内存地址映射到硬件内存中的实际地址上,这些任务完全由Windows在后台管理。其实际结果是”位处理器上的每个进程都可以使用4GB的内存ˉ—无论计算机上实际有多少硬盘空间(在64位处理器上,这个数字会更大。这个4GB的内存实际上包含了程序的所有部分,包括可执行代码、加载的所有DLL,以及程序运行时使用的所有变量的内容。这个4GB的内存称为虚拟地址空间,或虚拟内存。

4GB中的每个存储单元都是从0开始往上排序的。要访问存储在内存的某个空间中的一个值,就需要提供表示该存储单元的数字。在任何复杂的高级语言中,如VB、C#和Java,编译器负责把人们可以理解的变量名转换为处理器可以理解的内存地址。

在进程的虚拟内存中 ,有一个区域称为栈。栈存储不是对象成员的值数据类型。另外,在调用一个方法时 ,也使用栈存储传递给方法的所有参数的副本 。

栈指针(操作系统维护的一个变量表示栈中下一个空闲存储单元的地址。程序第一次开始运行时,栈指针指向为栈保留的内存块末尾。栈实际上是向下填充的,即从高内存地址向低内存地址填充。当数据入栈后,栈指针就会随之调整,以始终指向下一个空闲存储单元。这种情况如图13-1所示。在该图中,显示了栈指针8O000(十六进制的OxC3500),下一个空闲存储单元是地址799999。

注意,与栈不同,堆上的内存是向上分配的,所以空闲空间在已用空间的上面。

整理自:C#高级编程

以上就是C# 内存管理 的内容,更多相关内容请关注搞代码(www.gaodaima.com)!


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:C# 内存管理

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址