【发布时间】:2013-04-04 13:00:41
【问题描述】:
我想找到一种方法来分析我在 prolog 中编写的谓词(一个巨大的谓词)的内存使用情况。我目前正在使用swi 和yap 运行它,我可以从这些进程的内存消耗中看到分配了大量内存。
问题是当谓词终止时它没有被释放/释放/垃圾收集(我必须停止解释器才能看到它)加上内存量只会保持增长,而谓词正在运行(它是否不应该运行,因为尾递归优化应该在每次迭代时缓解这个问题)。
有没有办法发现增加内存使用的子谓词/调用并检查是否有效地调用了尾递归优化?
任何其他关于如何优化问题的建议将不胜感激。如果有必要,我将提供有关谓词正在做什么的更多详细信息。
【问题讨论】:
标签: prolog profiling swi-prolog yap