ztwindwalker 发表于 2022-10-30 20:08 其实吧... 不一定 向 Windows 请求内存是调用 VirtualAlloc API, 根据参数有两种处理方式: MEM_RESERVE 就是让 Windows 分配虚拟内存, 并且保证分配的这部分将来是可用的, 其它程序无法占用. 但是对物理内存/swap 都不产生任何影响; MEM_COMMIT 就是让 Windows 增加"已提交"的内存数量, 并且保证将来使用这些数量内存的时候有足够的内存资源来分配. 但是直到进程真正访问对应的内存时, Windows 才会在物理内存中给进程分配内存. 当然也可以一起保留并提交. "已提交"的分母没错是(物理内存 + swap - 内核保留), 但分子其实是所有进程 MEM_COMMIT 的内存数量之和. |
ztwindwalker 发表于 2022-10-30 20:25 之前和现在的区别就是 从 Win7 (不一定准, 印象里是)开始, 任务管理器里显示的变成物理内存的实际用量, Win 7 以前显示的是现在的"已提交". 通过"已提交"来判断现在安装的物理内存够不够用其实问题不大, 我只是纠正一下, "已提交"的数量大于物理内存, 并不一定能说明物理内存已经爆了. |
本帖最后由 OstCollector 于 2022-10-30 21:37 编辑 内存大小是否够用的金标准应该是 perfmon.msc/perfmon.exe 里面,counter: Memory->Pages/sec 吧,不过感觉这个也会被一些东西干扰,比如mmap啥的 我随手malloc 1G的内存然后不去touch,也会贡献commit吧 (望向2G 内存虚拟机里面vscode的几个30G+ process) |
ztwindwalker 发表于 2022-10-30 20:38 你有没有想过一种可能性...软件申请内存之后是不一定会真的使用的, 现代操作系统通常会等软件真正写入已申请的内存区域的时候才真的分配空间, 而不管有没有真的分配空间, 分配器都会记录为已提交, 并且会预分配相应的页面文件, 而这取决于使用场景可以占到相当大的比例 |
zhgbbs 发表于 2022-10-31 01:06 所以从基本原理出发,有何可靠的第三方软件/命令行可以一锤定音地显示“当前正在运行的应用要多少物理内存才完全足够?”如何看到一个可以解决问题的数字? 或者windows任务管理器的显示机制非常科学、根本不需要别的工具,只是我自己看不懂,所以菜鸡? 不要内存焦虑的最好办法,就是让任何没有基础的人,看一下某个显示出来的数字,然后就可以判断,在自己实际使用场景下,内存容量是否足够。 我倒是知道一个土办法,就是完全禁用虚拟内存,然后看看运行软件,看看是不是报错,报错就证明“不够”,但是并不解决“到底要加到多少”。 有人说xp时代的任务管理器显示的内存占用率机制确实跟现在的不一样。那个时代就是,任务管理器显示内存没超过95%,放心用,别想升级内存容量的事情;超了,老老实实加容量。 |
本帖最后由 zhgbbs 于 2022-10-31 01:37 编辑 ztwindwalker 发表于 2022-10-31 01:25 你把下图的这些东西都搞明白,就不会有这么多问题了 顺便说下,“备用空间”(或者叫 已缓存)是可以一键清空的,就在我发的这个截图的软件里,你自己找找 ![]() ![]() |
ztwindwalker 发表于 2022-10-31 01:07 取决于具体用途, 常见的比如稀疏性很高, 但又没"那么高"的情况下, 更大比例的浪费可能会在开发中就难以接受, 但大致上50-90%的浪费是非常普遍且合理的操作 |
ztwindwalker 发表于 2022-10-30 17:22 楼上也有人给你了 Sysinternals https://learn.microsoft.com/en-us/sysinternals/downloads/sysinternals-suite?source=recommendations |
我不扯长篇大论,我所说自己的实际体验。 因工作关系,电脑需要 7x24,浏览器开上百个页面是经常的事情 16g 的时候,大概能撑半天,就开始卡了。但任务里看内存,也仅仅是占用少于 70%。 就因为这个百分比,那时候以为16g 是够用的,猜测是其它东西影响卡顿。 ~~~~~~~~~~~~~~~~~~~~~ 后来内存便宜,加到 32g,开机 2-3 天才会卡顿,也就是可持续流畅工作时间延长了 内存占用显示甚至不超过 60%,但的确还是会卡顿。重启后就恢复流畅性了。 貌似涉及内存释放的问题。 |
如果要说用的爽,那肯定是直接按照主板上限插内存用的爽,因为即使你运行的程序没有申请那么大的内存,剩余的内存也可以用于系统缓存用来加速硬盘的访问速度。Windows不会让你的内存闲置不用的。 如果从这个层面定义够用,那起码内存应该是我常用程序占用的硬盘大小+我常用的程序真实使用的内存大小,我经常使用电脑进行开发,所以我的内存够用大概得500G~1T。 当然我是没有钱买这么多内存的,但是32G我也能凑合用,所以就先插32g的先用着了。 |
没这么复杂,不同操作系统叫法不一样而已,Windows、MAC OS、Linux等等主流系统都会默认把内存全部占满,然后动态清理用不到的内存 如果内存太小,程序太多,数据被清掉了,那只能从硬盘里面找,这个时候就会变卡了 |
我几台电脑,最少的64g多的256g,现在白菜价,一步到位 |
16g办公常年占用70%以上,现在很多轻薄本都是16g内存焊死,都没啥32g选,要不就是游戏本比较重 |
九天御风 发表于 2022-10-31 11:38 随便找一本操作系统原理的书都有解释,还有详细的算法 简单的说,内存永远是不够的,不要关闭缓存 |
extrame 发表于 2022-10-31 13:48 嗯,这么说我明白你的意思了 不过加内存肯定钱不白花啊,多了总归好 ![]() |
如果16g换成32g跑各种软件跟游戏性能都没提升那就不需要因为这点而去加大内存,反之则很有必要。 |
husi0997 发表于 2022-10-31 09:57 emmmm.... 怎么说呢. 你可以知道自己想继续加内存, 是不是钱白花了. 如果32G的想加内存, 可以知道是否有意义. 因为他没体验过64G的内存时是否卡顿, 所以他没法根据64G的体验考量是否有差异来决定是否有必要加内存. 我描述不太清楚, 举个例子, 有些人60刷新的显示器用了很多年觉得也可以, 换120之后觉得挺好, 60用起来太难受了. 不是60不行, 是使用者在用之前对120的显示器没概念. 同样, 很多人讨论这个, 也是希望可以在自己没有体验的情况下了解预估差异, 来确定自己是否有购买需求. |
32*2到站点一周了,今天刚刚解封,这两天应该到手了,32是真不够我用了 |
内存我不知道,但是任务管理器那个CPU占用率就是误导性够大的,基频和睿频差距越大,越容易显示高CPU占用率。 |
九天御风 发表于 2022-10-31 11:38 Linus的系统是2T内存的,不会在意这个 顺带LTTstore.com 你说的是不是Linux ![]() |
最近内存的价格。。。除了笔记本,3个台式机都已经64+32+32的内存配置了。。 。 |
怎么说呢,steam上所有游戏开发厂商列出的那些推荐配置16G、最低配置8G其实都是测试过的了,内存满足标称肯定是够用的。 游戏研发的时候,游戏引擎对那些项目运行时的硬件占用其实都会实时监测。那一群大厂出的很多都是全平台,对内存占用应该还是反复调整和确认过的。 玩家自己要在玩3A的时候,后台同时挂着爱奇艺、20几个浏览器窗口、迅雷、QQ、微信这些,那16G是会吃紧。不过这种情况算不上日常吧,谁开机就8小时一直后台挂着3A跑呢? ![]() ![]() ![]() |
看来从 DDR4 时代到 DDR5 时代,我认为内存“一步到位”的容量需要 128G 没错。可惜,DDR5 时代 4 条内存频率依然是个问题。 也许,到了 DDR5 末期,64G × 2 能让我缓解内存没有“到位”的忧虑,最近这几年一直用的 32G 内存。 |
不知道linus系统的内存分配是怎么样的 |
本帖最后由 token 于 2022-10-31 10:30 编辑 有人甚至想通过任务管理器搞清楚windows的内存使用逻辑。 ![]() 这东西就是能加多大加多大,根据你预算还有干活的实际情况平衡来,不存在够用不够用的这种概念。 |
extrame 发表于 2022-10-31 09:41 所以我觉得讨论这个有啥意义? 你觉得不够用,加内存就是,又不是最多只能16G 明天说不定有帖子就是32G日常够用?64G日常够用?128G日常够用? 别人觉得够用,甚至4G都可以用 |
husi0997 发表于 2022-10-30 23:28 出16G不是因为够用, 而是用户肯买. 这两者之间还是有差距的, 只要用户忍耐力够强, 4G的机型一样可以出. |
commited翻译成已提交也真是…… |
内存不够用在实际使用过程中如果感知到了就加。如果感知不到那就不加。 不过LZ的确给人有了内存容量焦虑的错觉 |
yubeii 发表于 2022-10-31 02:42 浏览器没有释放内存的原因。相当于实际使用了这么多 |
不需要研究这么多,需要关注的是"已提交"这个选项.超过18G请加内存.目前我办公机子显示16.7G. |
跟个人使用习惯和用途有关,只玩16g没试过不够用的时候,我运行3A从不开多余的程序。 钱多有钱多的活法,钱少有钱少的活法 |
yubeii 发表于 2022-10-31 02:42 所以到底是系统的内存释放问题,还是软件的?感觉qq,tim就有点明显。 关了不能完全解决问题,能缓解! 重启的确就好了。 |
yubeii 发表于 2022-10-30 13:42 你这是软件问题,你就算加到1T内存还是会卡的,只是到来的慢一些 |
yubeii 发表于 2022-10-31 02:42 是,我最初的意思跟这个有类似之处,但是不涉及长期开机不关。有兴趣可以翻看置顶区。主楼我也编辑了,直接看彩色字和下面的置顶即可。冗长部分可以直接不看,干货不多。 大致就是,看任务管理器当前的物理内存占用率不高,不能简单判定内存容量肯定充足。 |
我把帖内有关技术向的实用观点/工具软件都置顶了,以免看起来像一个扯皮贴。 |
Archiver|手机版|小黑屋|Chiphell
( 沪ICP备12027953号-5 )310112100042806
GMT+8, 2025-10-5 10:51 , Processed in 0.019895 second(s), 11 queries , Gzip On, Redis On.
Powered by Discuz! X3.5 Licensed
© 2007-2024 Chiphell.com All rights reserved.