
我认为没有其他解决方案不同于“保留最新的N行,同时向前读取数据”或“从头开始,然后向后退,直到您读取第N行”以外的解决方案。
关键是您将根据上下文使用一个或另一个。
当尾部访问随机访问文件时,或者当数据足够小以存储在内存中时,“尾随后退”更好。在这种情况下,运行时间被最小化,因为您扫描了必须输出的数据(因此,它是“最佳”的)
当以流水线填充尾部或数据量很大时,您的解决方案(保留N条最新行)更好。在这种情况下,其他解决方案浪费了太多内存,因此不切实际,并且在源慢于tail的情况下(很可能)扫描所有文件也没有太大关系。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)