Performance 测量通用lisp程序的性能

Performance 测量通用lisp程序的性能,performance,common-lisp,Performance,Common Lisp,我写了一个通用的lisp程序,它比需要的速度慢。现在,我想分析我的代码,看看我的时间在哪里。有人们使用的工具吗?如果您正在使用,有一个整洁的统计分析器可用- 对于简单的测量,您可以使用,这在所有常见的Lisp实现中都可以使用。如果您正在使用,除了和实现特定的工具之外,还可以使用一些工具 使用M-x slime toggle profile FDDefinition来(取消)配置文件特定功能,M-x slime profile report来显示结果,M-x slime profile reset

我写了一个通用的lisp程序,它比需要的速度慢。现在,我想分析我的代码,看看我的时间在哪里。有人们使用的工具吗?

如果您正在使用,有一个整洁的统计分析器可用-

对于简单的测量,您可以使用,这在所有常见的Lisp实现中都可以使用。

如果您正在使用,除了和实现特定的工具之外,还可以使用一些工具


使用
M-x slime toggle profile FDDefinition
来(取消)配置文件特定功能,
M-x slime profile report
来显示结果,
M-x slime profile reset
用于重置。

我喜欢sb sprof软件包。它给出了所有被调用的函数(包括系统函数)。我的问题是,我真的看不出其中一些函数在哪里被调用。在common lisp中是否有任何逐行分析器实现(可能类似于python memmory profiler),这是一个示例python代码及其memmory_分析器结果。有了这个,我可以更改序列类型并查看memmory结果。它没有详细地显示BottleNEC,但它非常适合查找与类型相关的问题。此外,如果您使用SBCL,请确保您进行了文件(或整个系统)编译,并通读了整个编译器注释。可能有一些效率注意事项。@yilmazhuseyin SBCL也有一个,但它仍然是面向函数的,而不是面向行的(没有使用它)。要查看谁调用某个函数,可以在函数名上使用SLIME的
C-C-w C
(SLIME有许多有用的功能)。