2013-07-15 66 views
3

我正在開發一個項目,對矢量包感到滿意,並希望儘可能優化它,而不會影響組成項目的其他包。 我知道我可以使用下面的一個defun定義裏面,以優化單一功能是否有可能爲單個包聲明優化?

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

,並認爲「朗誦」可用於使效果全局。

有沒有一種方法來優化軟件包中的所有內容,還是隻需要在每個函數中聲明都更安全?

回答

4

declaim的範圍取決於實現。在SBCL中,我認爲你可以使用with-compilation-unit來實現你想要的。然而,我懷疑這是否有效用於性能目的:大多數時間性能關鍵代碼都集中在少數幾個地方,無論您從代碼的其他部分獲得的收益如何,都不值得犧牲安全性和可調試性。

+0

乾杯!我會去更精細的控制,但很高興知道這個結構。 – Baggers

4

您還可以圍繞一個或多個表單使用LOCALLY

+0

謝謝,這也很好地解決了這個問題。沒有辦法接受這兩個答案,但至少我可以upvote這一個以及。 – Baggers

相關問題