Unix 错误消息"Killed"

Unix error message "Killed"

本文关键字:Killed 消息 错误 Unix      更新时间:2023-10-16

我正在Unix平台上使用c++编写Hex游戏(目前运行C shell)。我的游戏的AI花了不到一分钟的时间来决定它的移动(我使用的是一种蒙特卡罗算法),几个步骤后,程序自行终止,在返回我的命令提示符之前只打印"Killed"。有没有人明白是什么原因导致这种情况发生,并有任何建议,我如何去改变我的代码来修复它?如果它有帮助的话,我没有使用我的系统。我使用SSH Secure Shell连接到学校的服务器。我还应该指出,我不认为我的算法有什么问题,因为它在崩溃之前按照我的预期工作,但它在决定第7步时总是崩溃。

这是内存不足管理器。很可能存在某种内存泄漏。如果希望继续处理内存泄漏,可以在另一个会话中运行这样的脚本。将processname替换为二进制文件的名称。

#!/bin/bash
while true; do {
    pgrep -x "processname" | while read PID; do {
        echo -1000 > /proc/$PID/oom_score_adj; 
    } done;
} done;

我不认为我的算法有什么问题,因为它按照我期望的那样工作

我认为这是问题的关键所在。有很多事情可能是"错误的"。除了不符合功能要求的算法之外。

特别是时间复杂度或空间复杂度对于现代硬件来说是不可行的。

在您的情况下,您的空间使用正在爆炸,触发OOM杀手。正如最初的回复者所说,它可能是由内存泄漏引起的(但它也可能只是一个"坏")。算法,它将显示相同的行为)。

通常新的GUI程序员忘记清除旧的渲染屏幕,所以它们只是堆积在一起(一个巨大的内存泄漏)。这是我要检查的第一件事。