通过网络读取和解析大型文本文件的最佳方法是什么?

2023-11-22

我遇到一个问题,需要我解析远程计算机上的多个日志文件。 有一些并发症: 1)该文件可能正在使用中 2)文件可能很大(100mb+) 3)每个条目可以是多行

为了解决使用中的问题,我需要先复制它。我目前正在将其直接从远程计算机复制到本地计算机,并在那里解析它。这就导致了问题 2。由于文件很大,将其复制到本地可能需要相当长的时间。

为了缩短解析时间,我想让解析器成为多线程,但这使得处理多行条目变得有点棘手。

两个主要问题是: 1)如何加快文件传输速度(压缩?,本地传输是否必要?,我可以通过其他方式读取正在使用的文件吗?) 2)在线程之间分割行时如何处理多行条目?

更新:我没有在服务器上进行明显的解析的原因是我希望对 cpu 的影响尽可能小。我不想影响系统测试的性能。


如果您正在读取顺序文件,您希望通过网络逐行读取它。您需要一种能够进行流式传输的传输方法。您需要检查 IO 流技术来解决这个问题。

像这样的大型 IO 操作不会从多线程中受益太多,因为您处理这些项目的速度可能与通过网络读取它们的速度一样快。

另一个不错的选择是将日志解析器放在服务器上,然后下载结果。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

通过网络读取和解析大型文本文件的最佳方法是什么? 的相关文章

随机推荐

  • hbm.xml 中映射的属性可以是暂时的吗?

    假设我有一个User像这样的实体 class User private String login transient private String hashedPassword 我永远不想转移hashedPassword给客户 所以我把它变
  • 控制 Android 上的用户语言

    我有一个多语言应用程序 我想让用户能够控制使用哪种语言 这意味着即使他有英语区域设置 如果他愿意 他也可以使用不同的语言 如何更改区域设置语言 每个应用程序 Android 不提供更改应用程序区域设置的方法 它是在全系统一级完成的 我认为这
  • 如何调试缓慢的 Office 应用程序互操作构造函数?

    我有一个处理 Excel 的应用程序 最近我遇到了创建 Excel 对象非常慢的问题 我用这个简单的代码重新创建了这个问题 Microsoft Office Interop Excel Application xlApp xlApp new
  • 使用值绑定分配的依赖属性不起作用

    我有一个带有依赖属性的用户控件 public sealed partial class PenMenu UserControl INotifyPropertyChanged public event PropertyChangedEvent
  • 一组元素中具有最大高度的元素

    我有一套div元素 在jQuery 我希望能够找出div最大高度以及该高度div 例如 div div class panel Line 1 Line 2 div div class panel Line 1 br Line 2 br Li
  • 将数据框转换为每月时间序列

    我有一个 100 年每月数据 1200 个数据点 的数据框 其中月份在列中 年份在行中 我想将其转换为每月的时间序列 并且我尝试了多种方法 但没有一种方法可以创建正确的 时间 结构 问题在于 R 将数据框视为 12 个变量 月份 的 100
  • C 指针算术 sizeof(struct)

    这是有问题的代码 include
  • 在 DVCS 中维护 Changelog.txt 文件

    我正在开发一个使用大量分支的 git 项目 在大多数情况下 这是一个非常棒的工作流程 我很高兴在分支之间进行合并 喜欢能够挑选代码 以及 git 和其他 dvc 附带的整体生命周期 我有一个痛点 真的很痛 如何维护changelog txt
  • 在大型解决方案中编译 C# 项目时如何利用多核 CPU?

    据我所知 VS2008 MSBuild不支持C 项目的多线程编译 不知道VS2010是否支持 您知道有这样做的第三方产品或开源项目吗 确实是MSBuild确实支持多核 虽然它有点像黑客 有一些限制 更容易从命令行 同样 一些构建服务器 如果
  • Dotpeek重新编译反编译文件

    我如何重新编译我编辑的代码 或者用原来的文件替换并在dotpeek中另存为exe 我尝试重新编译编辑的文件并保存它 但我不能 如果您找到任何方法请分享 谢谢 右键单击 Assembly Explorer 窗格中打开的文件 然后选择 导出到项
  • 在联接表 JPA 2 中映射额外属性

    我正在尝试按照此链接建模这种关系http www javaworld com javaworld jw 01 2008 images datamodel gif 这是订单和产品之间通常的多对多关系 但我不知道如何在连接表中添加额外的列 En
  • 如何使用 C# 获取 Windows 上 chrome.exe 的路径?

    我想从我的自动化测试框架启动 chrome 以便我可以测试我的服务器端 ASP NET 代码 确定 chrome exe 在我的计算机上的位置的最佳方法是什么 当 Chrome 安装在计算机上时 它会安装ChromeHTML网址协议 您可以
  • 如何缩小 .git 文件夹

    我目前的基地总面积约为 200MB 但我的 git 文件夹有 5GB 的惊人大小 由于我将工作推送到外部服务器 因此我不需要任何大量的本地历史记录 如何缩小 git 文件夹以释放笔记本上的一些空间 我可以删除 30 天之前的所有更改吗 莱纳
  • C++ 中“(void) new”是什么意思?

    我一直在看 Qttutorial它使用了我以前从未见过的结构 void new QShortcut Qt Key Enter this SLOT fire void new QShortcut Qt Key Return this SLOT
  • 比较 groovy 中的版本字符串

    嘿 我创建了一个 Groovy 脚本 它将提取某些文件夹的版本号 然后我想比较版本号并选择最高的 我让脚本在 dir 文件夹中运行 然后获取以下格式的版本 02 2 02 01 所以我可以得到这样的东西 02 2 02 01 02 2 02
  • 用于 Python 的 MS Analysis Services OLAP API [关闭]

    Closed 这个问题需要多问focused 目前不接受答案 我正在寻找一种方法来连接到 MS Analysis Services OLAP 多维数据集 运行 MDX 查询并将结果提取到 Python 中 换句话说 这正是 Excel 所做
  • 如何配置我的 iPhone 项目以使用单独的应用程序图标进行测试版

    我想要实现的是 我发送给 Beta 测试人员的构建中的应用程序图标与将提交审批的应用程序图标不同 这将使我和我的 Beta 测试人员能够轻松识别该应用程序是 Beta 版本 我不确定是否应该添加构建脚本来修改 info plist 并更改其
  • 如何将 Swift 结构作为参数传递给 Objective-C 方法

    我有一个接受类型参数的 Objective C 方法id我想向它传递一个 Swift 结构 ObjcClass m file implementation ObjcClass void addListener id listener Do
  • 在自定义活动设计器中将数据绑定到组合框

    我有一个自定义活动 有一个参数是一个字符串 但是 我不想让设计者输入任意字符串 而是希望向设计者提供一个带有选项列表的组合框 这些选项是动态的 并且从数据库加载到 List 集合中 我的问题是我不知道如何将设计器中的组合框绑定到此列表并将选
  • 通过网络读取和解析大型文本文件的最佳方法是什么?

    我遇到一个问题 需要我解析远程计算机上的多个日志文件 有一些并发症 1 该文件可能正在使用中 2 文件可能很大 100mb 3 每个条目可以是多行 为了解决使用中的问题 我需要先复制它 我目前正在将其直接从远程计算机复制到本地计算机 并在那