有一点没有想明白,从程序的结构来看是将800M的数据都读到内存里才进行的排序,如果数据再大呢?会不会因为数据量大的原因导致程序崩溃呢,还是我有什么理解不对的地方,请老师解惑。
如果你单机跑整个程序(你的机器内存8G,但你需要派排序的文件8.5G)这样子会导致程序因为内存空间不足导致panic,因此通过分片(分块)的方法,将大文件分子别在不同的机器上面进行处理,最终再由一个机器分别汇总结果并输出到文件。