美文网首页
场景设计 - 大文件小内存排序

场景设计 - 大文件小内存排序

作者: 夹胡碰 | 来源:发表于2021-04-23 14:39 被阅读0次

    1. 场景描述

    16G内存,32核CPU,2T的硬盘,实现500G文件的排序处理,你怎么设计

    2. 考察要点

    1. 内存不足
    2. 并行执行、压榨CPU
    3. 空间复杂度支持O(n)-可归并
    4. 要求时间复杂度尽量低

    3. 解决方法

    步骤

    1. 500个文件分成 50份 每个10G内部归并排序
    2. 采用归并的思想,每次读取两个文件的头数字(已经有序)进行排序,合并成一个大文件。
    3. 多线程去执行归并操作

    4. 性能提升

    1). 2步骤每次可以批量取出多个,减少IO,但是额外占用的空间就会多,需要和多线程资源进行权衡。
    2). 批量写,同批量读一样,需要额外占用空间

    相关文章

      网友评论

          本文标题:场景设计 - 大文件小内存排序

          本文链接:https://www.haomeiwen.com/subject/bxxwkltx.html