Dru*_*mmy 5 vb.net virtual shared memory-management
我想知道 VB.NET 局部静态变量在程序的虚拟地址空间中的存储位置,以及子例程/方法如何在调用之间保留其值?
为了了解进程的 VB.NET 虚拟地址空间,我在网上进行了广泛的搜索。有很多关于在 Linux 上运行的 Java 和 C 的图表和解释,其中包括称为“共享”或“数据”的虚拟内存区域,但很难找到专门关于 VB.NET 的内容。就我所见,.NET 没有利用名为“共享”的进程的虚拟地址空间中的区域。我的问题是,局部静态变量的数据存储在哪里,子例程/方法如何在每次调用之间重新获得对它的访问?直观地,我假设共享变量的数据存储在堆之一(LOH 或 SOH)上,具体取决于大小,并且子例程/方法在其堆栈上有对此的引用。但如果子程序结束,堆栈帧被删除,引用丢失。它如何重新获得这个参考?
小智 -1
C++ 和 C# 静态变量有点不同,例如在 C# 编程语言中,只能使用类成员静态变量(C++ 允许全局静态变量,也允许函数本地静态变量)。有关内存分配的一些详细信息,您可以查看,例如:“静态关键字揭秘”[^] (C#),静态变量存储在哪里(在 C/C++ 中)?[^] (C++)。
| 归档时间: |
|
| 查看次数: |
126 次 |
| 最近记录: |