我正在开发一个以大约 4 个基本实体为核心的多线程应用程序
例如
public class Album
{
public ICPN ICPN { get; set; }
public string Title { get; set; }
public string Label { get; set; }
public string PLine { get; set; }
public string CLine { get; set; }
public string Genre { get; set; }
public string SubGenre { get; set; }
public string Artist { get; set; }
public int NumTracks { get; set; }
public int NumVolumes { get; set; }
public IList<ITerms> Terms { get; set; }
}
我有一个 4 步流程,我使用带有 BlockingCollections 的生产者/消费者模式来管理这些流程。这是一条生产线,一旦完成,我会修改对象的状态,将统计信息和队列复制到下一个进程队列中,等待下一个进程/任务执行。
我正处于架构设计的关键时刻,我是否需要考虑将一些 BlockingCollections 序列化到 DB,或者我是否可以在高端服务器上的 Pipe 中运行大约 1000 万个上述类型的对象。
我有一个队列专用于每个进程的统计信息,即 UI 的 Timetaken/Success 或者我应该考虑将这些信息与对象一起存储吗?
速度/效率在此过程中至关重要。
有什么方法可以计算内存需求,或者这是一个糟糕的情况,看看
更新在这个阶段,我不需要为崩溃等保存数据,因为元数据对象被修改并写入磁盘......即未处理的文件夹/已处理的文件夹