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