2013-11-29 57 views
2

在我的UDF和組件中,我一直使用功能local範圍而不是var關鍵字。我有本地範圍模式設置爲「始終」服務器範圍內,所以我沒有明確使用本地關鍵字(除非我在與衝突字段名稱的cfquery循環內)。是否有任何我應該知道的副作用?或者我能否始終將var和local當作等效對象?Railo中的var和局部範圍變量之間是否有明顯區別?

我並不擔心這是不錯的編程練習,還是向後兼容,好的風格或其他「非實際」原因。我具體詢問它是否會影響應用程序的性能或內存使用,線程安全性或其他影響。

我將許多函數和組件緩存在應用程序和會話等共享作用域中,所以我特別好奇它是否會暴露通常不會出現的差異。我記得當我這樣做時,CFMX6.1曾經像瘋了一樣泄漏內存,但我沒有注意到Railo下的任何類似效果。

這個問題涉及Railo 3.3和4.0+,因爲我有不同的版本運行。

+1

回答這個問題的唯一方法是閱讀[源代碼](https://github.com/getrailo/railo)並檢查它們是如何實現的。 –

+0

您最好在Railo Google羣組上詢問這類問題:https://groups.google.com/forum/#!forum/railo。在這裏,您只需獲得社區開發人員和他們的猜測;在那裏,你會讓Micha成爲Railo開發人員的回答。 –

回答

3

這是不太可能的他們實施相同。然而,只要你確定你的局部變量沒有通過使用var或局部作用域泄露出你的函數,那麼你就沒事了。任何性能上的差異都是微不足道的,不值得關注自己。我還想補充一點,根據我的經驗,Railo是一個非常好的產品,所以如果出現任何一種方法的內存問題,我都會很驚訝。

+2

好的務實答案,這個。 –

相關問題