我一直有这个问题,其中(RAM/HARD DISK /其他(?))是堆的位置?JIT创建的堆在哪里(C#)
如果我通过内存中的代码加载2 GB文件,那么它会去哪里?
此外,这个“堆栈”位于物理位置?内存 ?
实际执行团队中的某人可以让我们知道吗?因为大多数人说的是它的RAM。但我想真的知道在哪里和如何两个? 如果在这里很难回答,请分享一些好文章。
我一直有这个问题,其中(RAM/HARD DISK /其他(?))是堆的位置?JIT创建的堆在哪里(C#)
如果我通过内存中的代码加载2 GB文件,那么它会去哪里?
此外,这个“堆栈”位于物理位置?内存 ?
实际执行团队中的某人可以让我们知道吗?因为大多数人说的是它的RAM。但我想真的知道在哪里和如何两个? 如果在这里很难回答,请分享一些好文章。
如果您加载了2GB
.NET进程的文件内存,它将在32位系统上崩溃,因为该框架在32位系统上大约持有1.2GB
。
你正在谈论的回忆在RAM为.NET managed assemblies
。对于其他人,由于该可能内存交换,通过操作系统本身在低RAM内存条件提出,可能 partialy完成对磁盘空间。
我会建议你阅读下面的文章:
http://blogs.technet.com/b/markrussinovich/archive/2008/11/17/3155406.aspx
的.NET堆只是你的应用程序的用户地址空间的一部分。那么它是否(及其中分配的所有对象)当前在RAM或磁盘上取决于整个系统当前的内存压力以及VMM的决定。堆的一部分可以同时在RAM和其他磁盘上。
What and where are the stack-and-heap
这个问题和它的答案,解释了它非常详细。它涵盖了堆栈和堆。它如何使用,差异等,它也有很好的图形!
不需要执行任务。堆和栈是标准的东西,初学者低级别检测报告者必须知道的 - 那就是初学者从事低级汇编程序编程。 – TomTom 2012-03-20 12:08:52