在访谈中问了这个问题。 从30k行的文件中查找“ the”的最佳方法是什么? 您应该确保它速度快并且需要较少的内存。
编辑1: 我的意思是处理文件的有效方法。 我回答他一次读取一行,并使用threadPool中的线程对其进行处理。
答案 0 :(得分:1)
如果没有进一步的标准来定义最佳,那么很难说“最佳”解决方案是什么。可能是
cat file.txt | nl | grep "the"
如果目标是花费最少的程序员时间。 正如评论已经指出的那样,瓶颈将是光盘访问所需的时间。 30k行的文件大小仍应小于10 MB,因此只需将其读入一个内存块中就可以避免进行其他磁盘读取。然后对单线程搜索进行一些性能分析,以检查是否值得花精力使用并行化,因为这也带来了线程生成和协调的开销,以及更高的代码维护成本。