You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

向磁盘读写数十亿20位数字的最快方案:选32bit long还是打包入64bit longlong

结论先行:方案B整体速度更快,你的初步判断逻辑完全成立

核心数据对比

  • 存储效率差:方案A单整数占32bit,方案B单整数平均占64/3≈21.33bit,相同数据量下B的磁盘读写体积仅为A的66.7%,直接减少1/3的IO耗时
  • 耗时差计算:按你给出的100MB/s磁盘速度计算,假设处理30亿个整数:
    • 方案A总数据量12GB,纯磁盘耗时约123秒
    • 方案B总数据量8GB,纯磁盘耗时约82秒,仅IO环节就节省40秒以上
  • CPU开销对比:位运算打包/解包属于极轻量操作,哪怕是解释执行的VBA,处理十亿级数据的位运算耗时最多也不会超过10秒,远低于IO环节节省的时间

适用边界说明

  • 只有当你的磁盘性能达到数GB/s的高端SSD水平时,才有可能出现CPU开销超过IO节省时间的情况,你当前的100MB/s IO场景下完全不需要担心
  • 你采用的大区块读写策略刚好匹配方案B的操作逻辑:可以一次性读入1GB的整块数据到内存后再批量解包,避免频繁小操作的额外开销

VBA实现小提示

VBA中可以直接用LongLong类型处理64位整数,用掩码&HFFFFF(20位全1)配合位移操作即可快速完成打包解包,不需要额外引入复杂逻辑。

内容的提问来源于stack exchange,提问作者6diegodiego9

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.12 15:45:02