【发布时间】:2011-01-19 21:23:02
【问题描述】:
问题: 我有大量大消息要序列化并通过网络发送。 我想最大化性能,所以我正在考虑创建多个线程用于消息序列化和一个线程用于发送数据。想法是根据网络性能动态确定序列化的线程数。如果数据发送速度快且序列化是瓶颈,请添加更多线程以提高序列化速度。如果网络很慢,请使用较少的线程,如果发送缓冲区已满,则完全停止。
任何想法如何做到这一点?
决定是否需要更多或更少线程的最佳算法是什么?
如何正确连接多个线程的序列化结果?
请回答以下任何问题?谢谢
【问题讨论】:
-
您提到性能是一个问题 - 这并不是线程问题的直接答案,但我很想知道您当前使用的是哪个序列化程序......特别是,我正在考虑使用 protobuf-net(免费 - 但披露:我编写了它),它比任何内置序列化程序都快得多(CPU)和更小(IO/带宽)。
-
我现在正在使用 BinaryFormatter。我计划打开protobuf。任何估计,V2 何时可以投入生产?
-
好吧,对于主 .NET 框架上的大多数常见场景,主干是稳定的。我不能承诺一个具体的日期,因为我还有其他(非编码)承诺。而且:v1 也非常强大......
标签: c# serialization network-programming threadpool