在成功实现了 karatsuba 算法后,我决定将所需时间与学校算法进行比较。该程序需要测试多达 32768 位数字。不幸的是,它停在 8192 位(这些数字存储在一个数组中)。使用 gdb 运行它时,我得到输出:Programme terminated with SIGKILL, Killed
. 所以很明显我在网上搜索并发现(因为我在Linux上),内核自动杀死了程序,因为它消耗了太多的资源。所以我的问题是:有没有办法让它保持运行?
提前感谢您的任何回复
最可能的原因是内存耗尽。top
您可以通过在终端上运行来粗略地测试这个假设。
如果是这种情况,valgrind
是你的朋友。非常仔细地查看您malloc
在程序中调用的每个位置,并确保free
之后调用每个数组。
我看到在强制 Linux 保持程序运行之前你应该做一些事情(如果你仍然可以这样做的话)。
我希望这有助于找到解决方案。
亲切的问候,PB