- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我目前正在编写一个基本上为客户端处理工作负载的服务器应用程序。根据实际工作负载,服务器可能会使用大量内存。目标平台是 Windows 和 Linux,代码是用 c++ 编写的。
但是,我对 Linux 编程不是很熟悉,在今天的一些测试中,我遇到了一些奇怪的崩溃。事实证明,这些与内存过度使用有关。
我编写的代码相当健壮,可以通过在遇到 bad_alloc 异常时拆分和排队其工作负载来处理内存不足的情况(至少在 Windows 系统上)。重构所有代码以应对由于过度使用内存而可能发生的错误将是一场彻头彻尾的噩梦。
所以,我想知道是否可以为我的进程和子线程关闭过度使用。我已经在这里找到了一个老问题 Link (在 stackoverflow)回答是否定的,但意识到这是一个 10 年前的答案,我想知道这是否可能已经改变?
如果仍然无法明智地改变应用程序,是否至少有一种方法可以在我的应用程序中检测它的当前设置?
提前致谢!
最佳答案
So, i was wondering if i could turn off overcommit for my process and child threads. I already found an old question here Link (at stackoverflow) that answers this as no, but realizing that this is a 10 year old answer i was wondering if that might have changed?
不,您仍然无法更改每个进程的过量使用设置。这是一个系统范围的设置。只有 super 用户权限才能更改它。
is there at least a way of detecting the current setting
您可以从/proc 伪文件系统读取它。特别是文件 /proc/sys/vm/overcommit_memory
。
关于C++ 内存过量使用 Linux,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65973148/
我是一名优秀的程序员,十分优秀!