gpt4 book ai didi

c# - .NET 是否可以在进程之间共享大型内存中的集合?

转载 作者:行者123 更新时间:2023-11-30 20:06:37 25 4
gpt4 key购买 nike

我有一个控制台应用程序,它每天运行数百次并从大文件(比如 50 个文件,总大小为 3-4 Gb)读取相同的数据。

我正在考虑制作一个 Windows 服务,它将数据缓存在内存中以加快访问速度并控制数据的生命周期(因为这 50 个文件的集合可能每天都不同)。

我将实现共享内存映射文件,以便控制台应用程序将从服务写入的内存中读取文件...

然而,还有另一个考虑因素。读取的数据每次都转换为 .NET 对象。

所以我的问题 - 有没有办法共享内存中的 .NET 对象(列表)而不是文件?

附言数据是一系列手动序列化的字节

最佳答案

我只是将其实现为提供套接字服务器的服务,并让控制台 exe 连接到该服务并通过 TCP/IP 发出请求,获取响应。非常容易设置,因为您已经(根据问题)对序列化进行了排序,并且非常可扩展。然后该服务可以让一切在内存中愉快地运行。您甚至可以让客户端和服务器是同一个 exe - 只需在 Environment.UserInteractive 开始决定是客户端还是服务器时检查。

一个注意事项:保持低带宽,避免使用繁琐的 API;意思是:不要让客户想太多然后提出 200 个请求;只需让它打包整个请求并将其发送到服务器即可。让服务器在本地处理这一切,避免大量网络流量。

关于c# - .NET 是否可以在进程之间共享大型内存中的集合?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9601158/

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