V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
CEBBCAT
V2EX  ›  问与答

很多人都说 Windows 下, C 盘空闲空间越大系统越快,对吗?有什么测试可以反驳这种观点吗?

  •  1
     
  •   CEBBCAT · 2018-09-28 23:28:21 +08:00 · 7918 次点击
    这是一个创建于 2008 天前的主题,其中的信息可能已经有所发展或是发生改变。
    65 条回复    2018-09-30 00:11:16 +08:00
    jsyzdej
        1
    jsyzdej  
       2018-09-28 23:33:04 +08:00 via Android   ❤️ 4
    是不是空间越大速度越快我不知道,可是空间小了,即使不慢,我看着也难受
    CEBBCAT
        2
    CEBBCAT  
    OP
       2018-09-28 23:33:47 +08:00
    按照我实际体验来说,C 盘空余空间和速度没有明显联系,仅余百兆级空余时除外

    仅搜到知乎一个问题 https://www.zhihu.com/question/29302513 英文没有搜到,好象是老外都不怎么在意?
    CEBBCAT
        3
    CEBBCAT  
    OP
       2018-09-28 23:34:37 +08:00   ❤️ 1
    @jsyzdej #1 那……哦
    hundan
        4
    hundan  
       2018-09-28 23:48:26 +08:00 via Android
    老实说我也一直纳闷,这说法是哪来的,很多人甚至觉得这是常识,但是并没有找到理论依据。

    我有几个想法,一是因为软件装多了服务启动项多了自己不知道,二是系统启动的时候或者资源管理器或者杀软扫描或者其他程序调用缓存的时候,特别是机械硬盘以及磁盘碎片多的时候,多余的文件可能使得磁盘读取缓慢,造成明显卡顿
    mmdsun
        5
    mmdsun  
       2018-09-28 23:55:44 +08:00 via Android   ❤️ 1
    不会。倒是磁盘碎片会拖慢系统速度,所以才不用 c 盘安装软件的。但是 c 盘是磁盘最外圈速度最快安装软件到 c 盘可以获得更好的 iO 性能。
    msg7086
        6
    msg7086  
       2018-09-28 23:58:11 +08:00   ❤️ 1
    比如很多年前,磁盘碎片多会影响机械硬盘的读取速度,空闲空间大,产生磁盘碎片的概率会稍微小一些。
    反驳的话就没必要了吧,谁主张谁举证,让他们给测试结果啊。
    uqf0663
        7
    uqf0663  
       2018-09-29 00:04:33 +08:00
    windows 没实测过,但是安卓系统,确实当剩余空间小的时候(低于 4G 左右)就真的卡,在千元机上我实际测试过 N 次都是这样。
    Moorj
        8
    Moorj  
       2018-09-29 00:05:52 +08:00
    老禅师怎么说的来着?这种情况下应该回答:“对,你说的对”
    springmarker
        9
    springmarker  
       2018-09-29 00:06:32 +08:00 via Android
    固态在高占用的情况下和空盘跑分会不一样
    abeholder
        10
    abeholder  
       2018-09-29 00:08:03 +08:00
    搭车问个问题 ,
    机械硬盘快三万个小时了。。是不是快要报废了~~
    我天天担心它炸了,又很懒不想把里面的重要东西整理出来。。。。
    FakeLeung
        11
    FakeLeung  
       2018-09-29 00:08:44 +08:00
    可能以前遗留下来。
    现在几乎全民 SSD,应该没有这种情况了吧。
    fuchunliu
        12
    fuchunliu  
       2018-09-29 00:09:22 +08:00 via Android
    个人认为小于 1G 趋近于 0 时及桌面存放很多文件的话开机加载很慢
    ysc3839
        13
    ysc3839  
       2018-09-29 00:24:16 +08:00 via Android
    自己测试的话也不难,可以拿虚拟机试试。不过说这种话的人大多没有经过严谨测试的,仅仅是凭感觉说的,没太大必要去纠结。
    celeron533
        14
    celeron533  
       2018-09-29 00:32:27 +08:00   ❤️ 2
    SSD 由于有写入放大和 Trim 控制,理论上空闲区域大一点有利于 trim 时候中转数据。所以很多 SSD 配套的工具软件都建议留下一些空闲空间或者干脆留下一块未分区空间作为交换区域。交换区域太小会影响速度和颗粒寿命。

    另一种是页面文件和缓存。如果空间不够,操作系统会牺牲缓存和部分页面文件来腾出空间。以及大文件写入的时候,由于剩余空间不多,只能用小而不连续的碎片空间存储新文件,导致效率低下,尤其是机械盘。SSD 稍好,但由于空间限制导致 trim 不及时也会拖慢性能。
    Rare0716
        15
    Rare0716  
       2018-09-29 00:48:47 +08:00 via Android
    😂😂影响没有,我经常 C 盘直接满了
    easylee
        16
    easylee  
       2018-09-29 00:49:47 +08:00 via Android
    @uqf0663 #7 +1
    ryd994
        17
    ryd994  
       2018-09-29 01:22:59 +08:00 via Android   ❤️ 2
    机械硬盘有碎片的问题。剩余空间小碎片问题很严重
    SSD 早年的是没事的。现在的 SSD 实际写入速度都是一塌糊涂,都是靠 slc 模拟缓存。也就是把一部分 tlc nand 以 slc 模式使用,然后再回写到 tlc 里。
    这个 slc cache 的大小是固件决定的。性能是越大越好,但是全盘 slc 的话,就会有性能受已占用空间影响的问题。
    你空盘和满盘测个速就知道了。主要文件要够大,一口气写爆 slc cache,你就知道 cache 多大了。
    最后,SSD 性能是和容量有间接关系的。小容量只有一块 flash,只有 1CE,那性能肯定比不上大容量 4CE/8CE。所以这一段是容量和性能成正比。CE 全部填满以后,再增大 flash 单片容量,这就对性能影响不大了。

    @abeholder 看 smart。如果 smart 报警,那就说明快不行了。但是这不是绝对。没报警但是挂了的和报警了还很顽强的,都有。没有重映射扇区的话问题不大。
    但是,你应该备份重要数据,不管新旧硬盘都会出故障。硬件有价数据无价。
    cgfbchooo
        18
    cgfbchooo  
       2018-09-29 01:31:27 +08:00 via Android
    是不是因为以前电脑内存不大,需要虚拟内存,而一般虚拟内存使用 C 盘,当空间不足时,虚拟内存大小也就不够了,导致卡顿。
    属于历史遗留问题?
    msg7086
        19
    msg7086  
       2018-09-29 02:48:49 +08:00   ❤️ 1
    @abeholder 家用级 4 年 3 万可以退役了。企业级(真品,不是所谓的库存拆机)可以到 6 年 5 万左右。
    我说的退役不是因为坏了,而是因为坏的概率上升了。
    一般的操作是买块新的,数据搬走,然后老硬盘作为离线备份来使用。
    等到真的监控报警了,发现坏道了,实际上已经开始丢失数据了。
    icyalala
        20
    icyalala  
       2018-09-29 02:57:10 +08:00
    "剩余空间越大越快" 倒不至于,"剩余空间越小越慢" 倒是能找到一些相关性。
    RqPS6rhmP3Nyn3Tm
        21
    RqPS6rhmP3Nyn3Tm  
       2018-09-29 04:37:30 +08:00 via iPhone
    我记得上古时代是内存爆了就会写入硬盘当虚拟内存,那个时候硬盘都很慢,然后就卡死了
    jedihy
        22
    jedihy  
       2018-09-29 05:24:25 +08:00
    @BXIA 这个现在也是这样,paged memory 会写入 C 盘的。你写驱动,ExAllocatePoolWithTag 第一个参数如果指定从 paged pool 里面开,是可能被 paged out 的,然后就到磁盘了。这在高负载的时候很容易发生。
    jedihy
        23
    jedihy  
       2018-09-29 05:24:54 +08:00
    所有 user-space 的 memory 都是 paged pool,随时可能被换到硬盘。
    datocp
        24
    datocp  
       2018-09-29 06:50:21 +08:00 via Android
    早期的说法是机械硬盘的前面分区读取比后面分区快,这在坏道扫描时确实有点这种感觉。然后默认的磁盘缓存就放置在 c 盘,那剩余空间至少得比磁盘缓存大。曾经有过把同学的 ntfs 分区塞得小于 5Gb 好像采用 512bytes 的簇,导致 win xp 无法识别该分区。那剩余空间怎么也得在 10GB 左右,那时已经是 P4 时代。
    谁知道在更早的代,所谓的大是多大,那时候一个硬盘都不一定有 10GB 容量。
    WuwuGin
        25
    WuwuGin  
       2018-09-29 07:27:54 +08:00 via Android
    XP 时代是这样的,那个时候如果只剩十几兆的空间(反正有个最小磁盘剩余限制),好像直接开不了机。。。后来的系统塞满也能启动了。
    SystemRemainder
        26
    SystemRemainder  
       2018-09-29 07:36:11 +08:00
    C 盘空间不足,而开启程序过多会警告虚拟内存不足,软件会卡死。
    loading
        27
    loading  
       2018-09-29 08:11:34 +08:00   ❤️ 1
    不说剂量谈毒性?

    空闲 10Mb vs 空闲 10G ?

    空闲 100G vs 空闲 100TB
    agdhole
        28
    agdhole  
       2018-09-29 08:47:47 +08:00
    大是如何定义的?
    日常软件都和系统装一个 SSD,软件启动也舒畅
    为了留空间就装个系统剩下 四五十 G 都空着,钱太多没地方烧了
    iTakeo
        29
    iTakeo  
       2018-09-29 08:49:43 +08:00 via iPhone
    没啥直接联系吧,c 盘经常剩下几十 M,最夸张的时候直接 0,后面就是软件打不开了,但是速度好像并不会变慢下来
    carlclone
        30
    carlclone  
       2018-09-29 08:54:39 +08:00 via Android
    panda
        31
    panda  
       2018-09-29 08:58:34 +08:00 via Android
    固态无视这种情况吧
    chocotan
        32
    chocotan  
       2018-09-29 09:00:08 +08:00
    硬盘不知道,反正我的 U 盘是这样
    loading
        33
    loading  
       2018-09-29 09:01:49 +08:00
    排除系统原因,还有一个 SSD 写入放大的问题,可以了解一下。
    h3lica
        34
    h3lica  
       2018-09-29 09:03:46 +08:00 via iPhone
    感觉没学过操作系统的好多啊…
    des
        35
    des  
       2018-09-29 09:08:45 +08:00 via Android
    @celeron533
    我一直好奇,这个 Trim 控制是怎么做的。
    主控芯片根本没办法知道那一块是真的空闲,除非针对针对分区格式做特别优化。
    比如删除一个大文件,驱动也只是往磁盘写入了一些数据。
    zpf124
        36
    zpf124  
       2018-09-29 09:37:22 +08:00
    这个问题其实是给不懂系统的普通人说的,目的就是为了不让他们填满 C 盘。

    因为 环境变量 %TEMP% 和 %TMP% 指定的目录都是 C 盘的(C:\Windows\Temp 或 C:\Users\zpf\AppData\Local\Temp),

    大多数程序的缓存还有系统程序的缓存都会放到这,比如 压缩软件默认位置 和 word 自动缓存。

    一旦 C 盘满了 这个环境变量的目录无法写入数据,许多软件都无法缓存数据,甚至有些直接无法运行,而没有了缓存有些程序确实会更慢一些。


    因此当年给所有普通用户的说法就是 C 满不能满,满了电脑卡。
    zpf124
        37
    zpf124  
       2018-09-29 09:44:54 +08:00
    至于现在 固态硬盘确实是剩余空间足够多时速度会比空间不足快,

    但不论是过去的机械还是现在固态都不是说空间越大越快, 只是有个剩余空间的阈值,小于这个值了确实会影响一些速度,但大于这个值一点还是大于这个值一倍速度并没有差距。
    zpf124
        38
    zpf124  
       2018-09-29 09:54:22 +08:00
    与之类似的还有 当初告诉普通用户 创建账号的时候不要使用中文,有些软件会安不上。

    我就遇到了。
    印象里是 ps cs4 还是什么来着的早期玩意,装不上的原因是因为安装包第一步会安装一个 vc++2006。
    然后这个傻逼库的安装程序不能识别非 ASCII 字母, 而 windws 创建的账户则是以我注册用户的中文名创建了用户目录
    C:\Users\*飞\
    那个类库的默认解压安装路径就是%TEMP%, 我最后临时把%TEMP% 变量改到 D 盘就安装好了,而对于普通用户还是告诉他们不要 xx 最省事。
    (好像到现在微软的解决办法变成了创建用户用你邮箱的前几位,而不是名字来解决这个问题...)
    iwtbauh
        39
    iwtbauh  
       2018-09-29 09:55:35 +08:00 via Android
    首先明确一点,碎片是文件系统层次上的,而不是磁盘层次上的。
    可以看出 M$的“磁盘碎片整理”误导了多少人。
    楼上好多人先搞清楚这个问题再套路,precondition 都搞错了命题就没有讨论真假的必要了。
    iwtbauh
        40
    iwtbauh  
       2018-09-29 09:56:03 +08:00 via Android
    @iwtbauh #39

    s/套路 /讨论 /g
    celeron533
        41
    celeron533  
       2018-09-29 10:20:55 +08:00
    @des trim 需要操作系统支持。原生的 winxp 就不支持,当年有些 SSD 厂家要求用户在 XP 上安装他们自己的 trim 软件
    des
        42
    des  
       2018-09-29 10:38:05 +08:00 via Android
    @celeron533
    这样就解释的通了,现在也没见到安装驱动。
    是有通用的机制了吗?以及 linux 平台上。
    abeholder
        43
    abeholder  
       2018-09-29 10:42:39 +08:00
    @ryd994 谢谢,我先把重要的拷到 U 盘才~

    @msg7086 嗯嗯,大佬,这个硬盘还三个月 9 年了 - - ,我不仅发现我懒,还发现我穷 。。。

    从知道有 RAMDISK 这东西开始,我就一直把 TEMP 目录放到 RAMDISK 了,这个硬盘现在看起来状态也还挺好的。。
    xuhaoyangx
        44
    xuhaoyangx  
       2018-09-29 10:44:34 +08:00
    其实最烦的时,120g 的 ssd 都 tm 要分区.....

    用个电脑分什么区呢,自己的东西,放在 document 里面多好,想迁移,一步带走。
    fengtalk
        45
    fengtalk  
       2018-09-29 10:44:45 +08:00
    看到 C 盘进度条那里红了就清理一下吧。
    abeholder
        46
    abeholder  
       2018-09-29 10:44:49 +08:00
    @iwtbauh 一个文件物理地址上不是相邻的,打开它寻址的时间不会变长吗?
    RainNiuBi
        47
    RainNiuBi  
       2018-09-29 10:49:08 +08:00
    @msg7086 那我家那块已经 7 年了,是不是很危险啊
    auhah
        48
    auhah  
       2018-09-29 10:51:56 +08:00
    @uqf0663 这个是因为 ssd 的写入放大吧,剩余空间低的时候 IO 性能差的令人发指。。。
    所以买手机空间尽量买的大一点,起码留 30%以上吧
    nuko
        49
    nuko  
       2018-09-29 11:17:31 +08:00
    嗯,这时候我要当杠精,快用 SSD
    iwtbauh
        50
    iwtbauh  
       2018-09-29 11:40:32 +08:00 via Android   ❤️ 1
    @abeholder

    那么是什么造成“文件物理上不连续”这种结果呢,是磁盘,还是文件系统?

    磁盘有没有将“一个文件的数据使用的块必须小于多少多少”强加于你。

    其实,在你说出“文件”这个名词的时候,你就已经有答案了。磁盘本身根本不了解“文件”这个概念。
    MonkeyCoder
        51
    MonkeyCoder  
       2018-09-29 11:42:03 +08:00 via Android
    固态无所谓了,其实固态硬盘在高占用和空盘状态下速度还是有差别的
    szzhiyang
        52
    szzhiyang  
       2018-09-29 12:39:49 +08:00
    这句话有个前提,就是假定用户安装软件时从未修改过安装目录。

    C 盘剩余空间小意味着什么?意味着电脑上的软件多。

    电脑软件多意味着什么?意味着电脑的开机启动项、后台服务项、计划任务项多。

    电脑的开机启动项、后台服务项、计划任务项多意味着什么?意味着系统运行就会卡慢。

    所以就有了这样的说法:

    「如果想让电脑跑得更快,请释放些 C 盘空间。」

    释放 C 盘空间,意味着电脑软件数量的减少;

    电脑软件数量的减少,意味着电脑开机启动项、后台服务项、计划任务项的减少;

    电脑开机启动项、后台服务项、计划任务项的减少,意味着电脑会跑得更快。

    这样一切都讲通了。
    loryyang
        53
    loryyang  
       2018-09-29 12:43:50 +08:00
    好像是因为磁盘碎片吧,因为空间小了之后连续空间变少,只能分许多碎片保存,这样读取的时候肯定不如一整块来的快。所以会需要偶尔做一下碎片整理
    hpeng
        54
    hpeng  
       2018-09-29 12:45:49 +08:00 via iPhone
    快满了就会慢,还会死机。
    Tokin
        55
    Tokin  
       2018-09-29 12:53:28 +08:00
    鲁迅:不是我说的
    msg7086
        56
    msg7086  
       2018-09-29 13:23:57 +08:00
    @abeholder @RainNiuBi
    7 年 9 年的话应该是使用不太频繁的情况。
    非 24x7 使用的时候寿命会长一些,但是原则上 3-4 万小时应该视作安全死线了,只能做下载 /备份,不适合日常使用了。

    @des trim 是文件系统走内核向下层设备通知的。
    Linux 下可以看源代码:
    https://github.com/karelzak/util-linux/blob/master/sys-utils/blkdiscard.c#L216
    每次删除数据的时候,文件系统会找出释放的扇区,然后向下发送通知。
    xuanbg
        57
    xuanbg  
       2018-09-29 13:32:25 +08:00
    当空间过小的时候,文件容易碎片化。碎片化文件多了,对于机械硬盘来说,就会严重影响读写速度。所以,请保证每个盘都有足够的剩余空间。。。

    空间越大越快的传言不能说完全正确,但也没必要去驳斥吧。
    ysc3839
        58
    ysc3839  
       2018-09-29 15:45:58 +08:00 via Android
    @szzhiyang 这个说法有道理。但似乎并不能完全解决问题,有的人会把程序都装到别的分区,实际上还是卡。
    wly19960911
        59
    wly19960911  
       2018-09-29 16:18:36 +08:00
    ssd 肯定是有空间和没空间速度不一样,比如三星的跑分盘,会用来当缓存提高跑分 /
    mulei200
        60
    mulei200  
       2018-09-29 16:55:43 +08:00
    我现在笔记本电脑就会时不时出现 全部应用程序卡死的情况 ,等待 1 分钟左右又会恢复正常,但是大概率会出现系统部分文字无法显示(显示为空白,比如 qq 对话就有的字能看到有的字看不到),重启电脑才能恢复,不知道是机械硬盘的问题还是固态硬盘的问题,两个都已经使用超过 4 年了,有大佬给解答下吗
    Daath
        61
    Daath  
       2018-09-29 18:24:22 +08:00 via Android
    对于一些用全盘模拟 slc 缓存的 SSD 来说,可能会。。到容量小到一定量的时候,读写就变慢了。。从这样的道理来讲应该能说的通
    delectate
        62
    delectate  
       2018-09-29 18:26:12 +08:00
    都是玄学,类似的还有,碎片整理可以提速,桌面右键刷新可以提速,内存占用越小可以提速等等。
    delectate
        63
    delectate  
       2018-09-29 18:26:39 +08:00
    @mulei200 io 问题导致卡住,看是不是有坏道了。
    lavenderkissyou
        64
    lavenderkissyou  
       2018-09-29 21:23:34 +08:00
    为什么会越快? 如果 C 盘永远有 50G 空间不写进去东西,那么这 50G 的空间就没用上,和没有这 50G 没什么两样
    MonoLogueChi
        65
    MonoLogueChi  
       2018-09-30 00:11:16 +08:00 via Android
    @FakeLeung 不,SSD 才会有这种问题。在理论上来讲,SSD 空闲空间越大,读写性能越好。当然只是理论上来讲,实际上除了把 SSD 塞满了性能会下降之外,其他情况并没有特别大的差距。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2711 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 31ms · UTC 15:38 · PVG 23:38 · LAX 08:38 · JFK 11:38
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.