我遇到一个问题,需要我解析远程计算机上的多个日志文件。
有一些并发症:
1)该文件可能正在使用中
2)文件可能很大(100mb+)
3)每个条目可以是多行
为了解决使用中的问题,我需要先复制它。我目前正在将其直接从远程计算机复制到本地计算机,并在那里解析它。这就导致了问题 2。由于文件很大,将其复制到本地可能需要相当长的时间。
为了缩短解析时间,我想让解析器成为多线程,但这使得处理多行条目变得有点棘手。
两个主要问题是:
1)如何加快文件传输速度(压缩?,本地传输是否必要?,我可以通过其他方式读取正在使用的文件吗?)
2)在线程之间分割行时如何处理多行条目?
更新:我没有在服务器上进行明显的解析的原因是我希望对 cpu 的影响尽可能小。我不想影响系统测试的性能。
如果您正在读取顺序文件,您希望通过网络逐行读取它。您需要一种能够进行流式传输的传输方法。您需要检查 IO 流技术来解决这个问题。
像这样的大型 IO 操作不会从多线程中受益太多,因为您处理这些项目的速度可能与通过网络读取它们的速度一样快。
另一个不错的选择是将日志解析器放在服务器上,然后下载结果。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)