【发布时间】:2018-05-11 13:24:18
【问题描述】:
我想创建一个日志库,它将记录数据包发送和接收 b/w 多个客户端和服务器应用程序,我想创建这个库优化到足以记录尽可能多的日志,但要实现它必须克服了我认为计时器很好的 IO 绑定问题,在特定时间内我们无法记录,然后记录线程将被杀死,我们继续工作而不记录,当我们再次收到它时,我们应该这样做再次。我想知道有没有比我可以采用的更好的方法?或者有人可能对此有什么看法?
【问题讨论】:
-
我正在使用 C# 语言制作这个库。
-
只需将您的日志放在一个队列中,让一个工作线程处理队列中的项目并记录每个项目。
-
在我的场景中,有 1 个 lac 客户端,每个客户端每秒创建 4000 条消息。你不认为排队会是开销吗
-
是的,但这取决于您是否可以不记录每条消息。
-
是的,当有大量 IO 绑定工作时,我可以接受丢失一些日志,但不应因为日志记录而影响通信。
标签: c# concurrency socket.io load