gpt4 book ai didi

c# - List 对象缓冲区在哪里维护?它是在 RAM 上还是在 HDD 上?

转载 作者:可可西里 更新时间:2023-11-01 03:04:29 24 4
gpt4 key购买 nike

我的问题可能听起来有点含糊。但我想知道的是 List<> 在哪里缓冲区保持不变。

我有一个列表 List<MyClass>我正在向其中添加来自无限循环的项目。但是 Windows 服务(我在其中创建列表)的 RAM 消耗从未超过 17 MB。事实上,即使我继续向列表中添加项目,它也徘徊在 15-16MB 之间。我试图对我的服务进行一些负载测试并遇到了这个问题。

谁能告诉我它是否将数据转储到机器上的某个临时位置,并从那里选择它,因为我没有看到 RAM 消耗增加。

我无限调用的方法是 AddMessageToList()。

class MainClass
{
List<MessageDetails> messageList = new List<MessageDetails>();
private void AddMessageToList()
{
SendMessage(ApplicationName,Address, Message);
MessageDetails obj= new MessageDetails();
obj.ApplicationName= ApplicationName;
obj.Address= Address;
obj.Message= Message;
lock(messageList)
{
messageList.Add(obj);
}
}
}
class MessageDetails
{

public string Message
{
get;
set;
}
public string ApplicationName
{
get;
set;
}
public string Address
{
get;
set;
}
}

最佳答案

您的问题的答案是:“在内存中”。

可以指RAM,也可以指硬盘(Virtual Memory)。操作系统内存管理器决定何时将内存分页到虚拟内存,这主要与访问内存的频率有关(尽管我不假装知道 Microsoft 的特定算法)。

您还询问了为什么您的内存使用量没有上升。首先,MegaByte 是一个巨大的内存量。除非你的类(class)很大,否则你需要很多才能让 MB 出现。不过,最终您的内存使用量应该会增加。

关于c# - List<MyClass> 对象缓冲区在哪里维护?它是在 RAM 上还是在 HDD 上?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22602332/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com