paparika
V2EX  ›  Android

Android 读取大文件最佳实践?

  •  
  •   paparika · Dec 29, 2017 · 13784 views
    This topic created in 3081 days ago, the information mentioned may be changed or developed.
    目前有一个需求,读取一个大文件里面的数据,提取出连续 n 个字节数据的最大/最小值,求最佳实践?
    1.单线程+MappedByteBuffer
    2.多线程+MappedByteBuffer
    3.其他?

    理论上多线程应该优于单线程,不过多线程会影响缓存命中
    9 replies    2018-01-01 17:22:59 +08:00
    paparika
        1
    paparika  
    OP
       Dec 29, 2017
    补充一下,没有 race condition
    facetest
        2
    facetest  
       Dec 29, 2017 via Android
    写段代码测试一下应该不难吧?
    forestyuan
        3
    forestyuan  
       Dec 29, 2017
    瓶颈应该在 IO 上,估计单线程和多线程差别不大
    jameslan
        4
    jameslan  
       Dec 30, 2017 via Android
    io 密集操作你跟我说多线程优于单线程?
    crayygy
        5
    crayygy  
       Dec 30, 2017 via Android
    试试用 JNI ?
    paparika
        6
    paparika  
    OP
       Dec 30, 2017
    @jameslan 多线程可以多抢时间片,嘿嘿
    paparika
        7
    paparika  
    OP
       Dec 30, 2017
    实测了一个 300M 的文件,2 比 1 能省一半时间还多
    ryd994
        8
    ryd994  
       Dec 31, 2017 via Android
    @paparika block scheduler 直接给你重排成正常顺序
    paparika
        9
    paparika  
    OP
       Jan 1, 2018
    @ryd994 什么意思?愿闻其详
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   878 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 33ms · UTC 21:54 · PVG 05:54 · LAX 14:54 · JFK 17:54
    ♥ Do have faith in what you're doing.