最近,网上流出了各酒店的开房客户信息,号称有2000W。。本着做贼心虚的心态,上网找了找。。下载下来是几个 CSV 文件。。都是300M左右。不管用记事本打开还是用其它文本工具打开,都是当的痛苦。。
试着写个小工具搜索这些文件。。为了提高用户体验,就想到了多线程。。7个文件,开7个线程分别读取。。
试了一下,所有文件一起搜索,大概需要3分钟查询结束。。如图:
本以为是我这台已经用了两年的机器太烂,没在意。。
刚才偶尔手贱,选了一个文件就点“查询”了,结果很快,8秒多,一个300M的文件就完了。。
吓了一跳。。
感觉心理差距有点大。。
又试了一下,还是8秒多;选两个文件,22秒多;选3个文件,40多秒。。。
7个文件,还是要3分钟左右。。。
多线程对效率影响这么大?郁闷了!
找度娘问了问,她说:“如果有大量的线程,会影响性能,因为操作系统需要在它们之间切换”,尼码!这么轻描淡写!
于是,试着将搜索放在一个线程里,读完一个文件,接着读另一个文件,改完,测试。
果然,不到 1 分钟就执行OK了。测了多次,最多的也只要1分零几秒。。
恐怖了,多线程处理性能竟然浪费这么严重。。看来以后要谨慎使用了!
度娘的轻描淡写让我轻轻的把它给忽略了。。尼妹!
一个手贱,长了一个姿势。。哈哈。。
更让我谢天谢地的是:开房记录里木有找到我。。。哈哈哈哈。。。