V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
shanghai1943
V2EX  ›  macOS

MacOS 对于重复文件是否有存储上的优化

  •  
  •   shanghai1943 · 2021-09-08 12:32:31 +08:00 · 2196 次点击
    这是一个创建于 933 天前的主题,其中的信息可能已经有所发展或是发生改变。

    印象中从某个 os 版本开始,似乎对于重复的文件只会存一份?相当于一个文件拷贝了多份,但底层存储还是只存了一份,其他的知识逻辑关联之类的。

    不知是我记错了还是确实有这样的优化?

    8 条回复    2021-09-10 13:58:45 +08:00
    shanghai1943
        1
    shanghai1943  
    OP
       2021-09-08 12:38:00 +08:00   ❤️ 1
    网上找到了一篇文章,看起来只有在进行 [复制] 操作的时候才有的优化?
    Building
        2
    Building  
       2021-09-08 13:28:24 +08:00 via iPhone   ❤️ 2
    首先,定义什么是重复文件,Sandbox 还是会复制一份过去的。
    chendy
        3
    chendy  
       2021-09-08 13:37:18 +08:00   ❤️ 1
    不是对重复文件的优化,是实现了“写时复制”机制优化了复制操作
    Damenly1
        4
    Damenly1  
       2021-09-08 13:40:09 +08:00   ❤️ 2
    而且必须是 cp -c $src $dst 。macos 应该也提供了像 linux FICLONERANGE 这样 syscall,只有调用这个就行。
    比如:


    $df -h
    /dev/disk3s5s1 221Gi 14Gi 38Gi 28% 553781 2312235219 0% /

    $ls -lh 01
    -rw-r--r--@ 1 damenly staff 1.5G Sep 1 18:48 01.mp4

    $cp 1 2
    /dev/disk3s5s1 221Gi 14Gi 37Gi 29% 553781 2312235219 0% /

    $cp -c 1 3
    /dev/disk3s5s1 221Gi 14Gi 37Gi(76675184) 29% 553781 2312235219 0% /

    $dd if=/dev/zero of=03 bs=4k count=131072 conv=sync
    131072+0 records in
    131072+0 records out
    536870912 bytes transferred in 0.304234 secs (1764664248 bytes/sec)

    $df
    /dev/disk3s5s1 462557800 29943296 75626360 29% 553781 2312235219 0% /
    WuSiYu
        5
    WuSiYu  
       2021-09-08 18:26:00 +08:00
    是存在的,但仅限于“复制时不会立即创建副本,直到一者发生更改”,这是 cow 文件系统的一个普遍特性
    secondwtq
        6
    secondwtq  
       2021-09-08 23:45:21 +08:00
    CoW 是 CoW,dedup 是 dedup 。
    CoW 倒是不难做,dedup 不好搞,相当于你要不断扫描文件系统中所有的文件。ZFS 开 dedup 好像要好多内存来着。
    WebKit
        7
    WebKit  
       2021-09-09 01:13:14 +08:00 via Android
    有吗?我记得是 iOS 上啊
    clrss
        8
    clrss  
       2021-09-10 13:58:45 +08:00
    @secondwtq 正解.

    @shanghai1943 如果要 dedup 的话, 有第三方软件.
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   4084 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 34ms · UTC 05:21 · PVG 13:21 · LAX 22:21 · JFK 01:21
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.