我正在为内存有限的设备编写一个C#应用程序。(iPhone/iPad上的Mono)string xml = "10 meg xml string from REST service";xml = null;问题是,我正在循环中下载许多大型xml文件,即使我将字符串设置为null,内存使用量也在不断增长。
我对哈希表的理解是,它们使用散列函数将键与内存中的位置相关联,在内存中预先分配了总数量的“桶”。我们的目标是有足够的存储桶,而不必使用链接,从而将理想的O(1)访问时间复杂度降低到n/m x O(1),其中n是要存储的唯一键数,m是存储桶的数量。如果我们有1000个预先分配的桶,那就意味着我有1000个字节的分配内存,分布在我的内存周围。因此,我的哈希表中的每一个唯一键都会产生一个内存片段,从而分割我的RAM。这是否意味着哈希表的使用基本上保证了与唯一