让 Windows 实际上不将临时文件写入 SSD

让 Windows 实际上不将临时文件写入 SSD

我目前正在编写一个程序(在 Windows 10 上,使用 Microsoft C++ 2019),其中调试版本会生成大约一百兆字节的符号文件;随着代码量的增加,这个数字还会增加。考虑到调试版本是一个非常频繁的事件,这实际上可能会严重缩短 SSD 的使用寿命。

从技术上讲,这种情况是没有意义的;这些是一次性文件,我有 32 GB 的 RAM;它们应该永久保存在 RAM 中,而永远不要写入磁盘。理想的情况是,如果有一种方法可以告诉 Windows,让这些一次性文件出现在文件系统中以实现软件兼容性,但实际上不要将它们写入磁盘,而只是将它们保存在 RAM 中。有没有办法做这样的事情?我从未听说过;我听说过的最接近的方法是写回缓存,但这实际上没有帮助,因为文件仍然会被写入,只是稍晚一点;它假设您要解决的问题是速度,但这不是这里的问题。

使用 Windows 7 最大限度地减少对 SSD 磁盘的写入讨论了其他类型数据的问题,但大多数答案似乎都是“...将 X 放在不同的分区上”。听起来,写答案的人假设机器包含旋转磁盘和 SSD?我确实看到有人建议插入外部 SSD,大概是作为牺牲 SSD;我可以看到这在原则上是可行的,但将昂贵的高性能组件视为对本来就不应该发生的进程的牺牲似乎不是最佳选择。

RAM 磁盘是必要且充分的解决方案吗?它们是否仍将其内容保存在物理 RAM 中?

答案1

一百兆字节的符号文件非常多。您可能正在使用大量系统 DLL/程序集并下载它们的符号文件,并且/或者您已将 Visual Studio 设置为以非常高的细节级别收集调试信息。

除非您想通过微软的软件进行追踪,否则您可以将符号文件限制在您自己的软件中。

选项 > 调试 > 符号,默认选项为“除非排除,否则自动加载所有模块的符号”。

请使用“仅指定模块”选项, 描述 作为:

默认情况下,此设置将加载磁盘上二进制文件旁边的符号,但不会尝试加载任何其他模块的符号,除非您通过单击“指定模块”将它们添加到包含列表中。

相关内容