mid*_*s06 9 .net c# networking parsing multithreading
我有一个问题,需要我从远程机器解析几个日志文件.有一些复杂情况:1)文件可能正在使用2)文件可能相当大(100mb +)3)每个条目可能是多行的
要解决使用中的问题,我需要先复制它.我目前正在将它直接从远程计算机复制到本地计算机,并在那里进行解析.这导致问题2.由于文件非常大,在本地复制它可能需要相当长的时间.
为了增强解析时间,我想使解析器具有多线程,但这使得处理多行条目变得有点棘手.
两个主要问题是:1)我如何加速文件传输(压缩?,本地传输甚至是必要的?,我可以用其他方式读取使用文件吗?)2)我如何处理多行条目什么时候分开线程之间的线?
更新:我没有对服务器进行明显解析的原因是我希望尽可能减少对cpu的影响.我不想影响系统im测试的性能.
小智 2
如果您正在读取顺序文件,您希望通过网络逐行读取它。您需要一种能够进行流式传输的传输方法。您需要检查 IO 流技术来解决这个问题。
像这样的大型 IO 操作不会从多线程中受益太多,因为您处理这些项目的速度可能与通过网络读取它们的速度一样快。
另一个不错的选择是将日志解析器放在服务器上,然后下载结果。