V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
git
Pro Git
Atlassian Git Tutorial
Pro Git 简体中文翻译
GitX
liuidetmks
V2EX  ›  git

.git objects 为什么要取前两个 字母作为文件夹再添加?

  •  
  •   liuidetmks · 2021-09-03 19:02:41 +08:00 · 1205 次点击
    这是一个创建于 937 天前的主题,其中的信息可能已经有所发展或是发生改变。

    例如文件 sha 值为

    aaf4c61ddcc5e8a2dabede0f3b482cd9aea9434d
    

    保存的时候保存路径是

    .git/object/aa/f4c61ddcc5e8a2dabede0f3b482cd9aea9434d
    
    

    为什么要这么做呢?
    猜测是为了 object 防止文件夹下面文件过多?这样文件系统找文件是不是会更快?
    还是为了美观?

    我们平时写程序,创建文件时候较多( <1000),有必要这么操作的必要吗?

    4 条回复    2021-09-04 13:10:35 +08:00
    4ark
        1
    4ark  
       2021-09-03 19:05:51 +08:00 via iPhone
    你猜测是对的
    agagega
        2
    agagega  
       2021-09-03 19:07:29 +08:00 via iPhone   ❤️ 1
    noe132
        3
    noe132  
       2021-09-03 21:01:22 +08:00 via Android
    文件系统内部实现可能是链表也可能是 b 树。数量少,查询就快。
    msg7086
        4
    msg7086  
       2021-09-04 13:10:35 +08:00
    才几千文件问题不大,可做可不做。如果是几十万几百万,那肯定是分开存放速度更快。

    当然了,如果你用 Reiser 文件系统的话,倒是不一定要这么做,Reiser 家族处理大量文件性能挺好的。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   948 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 20:57 · PVG 04:57 · LAX 13:57 · JFK 16:57
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.