shanghai1943
V2EX  ›  macOS

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

  •  
  •   shanghai1943 · Sep 8, 2021 · 2904 views
    This topic created in 1762 days ago, the information mentioned may be changed or developed.

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

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

    8 replies    2021-09-10 13:58:45 +08:00
    shanghai1943
        1
    shanghai1943  
    OP
       Sep 8, 2021   ❤️ 1
    网上找到了一篇文章,看起来只有在进行 [复制] 操作的时候才有的优化?
    Building
        2
    Building  
       Sep 8, 2021 via iPhone   ❤️ 2
    首先,定义什么是重复文件,Sandbox 还是会复制一份过去的。
    chendy
        3
    chendy  
       Sep 8, 2021   ❤️ 1
    不是对重复文件的优化,是实现了“写时复制”机制优化了复制操作
    Damenly1
        4
    Damenly1  
       Sep 8, 2021   ❤️ 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  
       Sep 8, 2021
    是存在的,但仅限于“复制时不会立即创建副本,直到一者发生更改”,这是 cow 文件系统的一个普遍特性
    secondwtq
        6
    secondwtq  
       Sep 8, 2021
    CoW 是 CoW,dedup 是 dedup 。
    CoW 倒是不难做,dedup 不好搞,相当于你要不断扫描文件系统中所有的文件。ZFS 开 dedup 好像要好多内存来着。
    WebKit
        7
    WebKit  
       Sep 9, 2021 via Android
    有吗?我记得是 iOS 上啊
    clrss
        8
    clrss  
       Sep 10, 2021
    @secondwtq 正解.

    @shanghai1943 如果要 dedup 的话, 有第三方软件.
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   3625 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 81ms · UTC 00:42 · PVG 08:42 · LAX 17:42 · JFK 20:42
    ♥ Do have faith in what you're doing.