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

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

作者: 夹胡碰 | 来源:发表于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). 批量写,同批量读一样,需要额外占用空间

相关文章

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

    1. 场景描述 16G内存,32核CPU,2T的硬盘,实现500G文件的排序处理,你怎么设计 2. 考察要点 内存...

  • 小内存大文件,如何排序

    见代码

  • Java 超大文件排序

    思想 超大文件无法一次性全部加载到内存中; 可以将超大文件分片排序,然后遍历分片,输出排序后内容至指定文件; 编码...

  • 外部排序-归并排序

    1.外部排序定义 指的是大文件的排序,即待排序的记录存储在外存储器上,待排序的文件无法一次装入内存,需要在内存和...

  • 外部排序和多路排序

    外部排序: 一、定义问题 外部排序指的是大文件的排序,即待排序的记录存储在外存储器上,待排序的文件无法一次装入内存...

  • Node大内存应用

    在Node中,不可避免地还是会存在操作大文件的场景。由于Node的内存限制,操作大文件也需要小心,好在Node提供...

  • 数据结构与算法外部排序

    1.外部排序的基本概念对大文件进行排序,因为文件中的记录很多、信息量庞大,无法将整个文件复制进内存中进行排序需要将...

  • JS实现堆排序

    原理 堆排序原理 实现 说明 堆排序对大文件很有效 堆排序是不稳定排序

  • 八大排序算法

    排序分类:内部排序、外部排序 外部排序 大文件的排序,即待排序的记录存储在[外存储器]26993)上,待排序的文件...

  • php怎样防止内存溢出oom

    php怎样防止内存溢出oom 在编程的时候经常会遇到下载大文件,如果将下载的大文件都读到内存中再存储到硬盘这个时候...

网友评论

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

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