4

我正在开发一个项目,我对矢量包感到满意,并希望尽可能优化它而不影响构成该项目的其他包。我知道我可以在 defun 中使用以下内容来优化该单个功能

(declare (optimize (speed 3) (safety 0)))

并且“声明”可以用来使效果全球化。

有没有办法优化包中的所有内容,还是在每个函数中声明更安全?

[编辑] 提醒未来的读者:在几乎所有情况下,您都不想使用安全 0。在您的代码中设置此主题之前,请进一步研究此主题,因为如果您遇到非常依赖系统和实现的错误搞砸了

4

2 回答 2

4

声明的程度取决于实现。在 SBCL 中,我认为您可以使用with-compilation-unit来实现您想要的。但是,我怀疑这对性能目的的效用:大多数时候,性能关键代码集中在少数几个地方,无论您从其余代码中获得什么收益,都不值得牺牲安全性和可调试性。

于 2013-07-15T11:38:49.183 回答
4

您还可以在一个或多个表单周围使用LOCALLY 。

于 2013-07-15T14:38:05.817 回答