2017-08-14 27 views
8

我在Haskell中编写了一个示例空间泄漏的集合,并且希望编写一个测试套件来捕获我自己,以便插入任何实际上不会泄漏空间的示例。测试Haskell函数是否存在空间泄漏

有没有办法测试这些例子,而不是为每一个单独的可执行文件?

+4

尼尔·米切尔在他的博客中描述一个非常有效和非常低的高科技技术:检测内存泄露 (HTTP:// neilmitchell.blogspot.com/2015/09/detecting-space-leaks.html)。 – Cactus

+0

在某些将来可能会使用静态分析器来检查这一点:)如果这可以形式化,那么检测空间泄漏只是实现算法的问题。 – Shersh

+0

@Cactus:这是一篇很棒的文章。不幸的是,我不知道是否有可能捕捉到内存不足时产生的异常(这是有道理的)。我尝试用'System.Posix.process.forkProcess'在另一个进程中生成异常,并用'ClassyPrelude.catchAny'捕获异常,但它仍然通过并崩溃了测试套件。 – seagreen

回答