希望我的問題還沒有得到解答,我只找到了this link,但它並沒有真正回答我的確切問題。通過參考和使用本地變量之間的性能差異
基本上我有一個類MyClass
其中包含另一類Settings
的本地成員currentSettings
。 MyClass
包含一個方法DoStuff
,它使用包含在對象的任何對象中的信息。
現在的情況:該方法永遠不會從類內部調用。其他一些類將包含一個MyClass
對象,並且只有從那裏調用該方法。現在我有兩種可能性:
class MyClass
{
Settings currentSettings = new Settings();
public void DoStuff()
{
//do stuff here using things stored in "currentSettings"
}
public void DoStuff(Settings settings)
{
//do stuff here using things stored in "settings"
}
}
class SomeClass
{
MyClass myClass = new MyClass();
...
//call method somewhere, with two different options:
myClass.DoStuff();
myClass.DoStuff(myClass.currentSettings);
}
課程的第二個變體似乎有點過於複雜,但是,它給我留下的自由傳遞任何設置,它可能不是本地成員currentSettings
,而且我需要在一些案例。
我現在關注這兩個選擇之間的性能差異,並且如果引用傳遞可能比使用本地設置慢得多,因爲此方法可能經常被調用(高達每秒幾百次)。
編輯:我已經發布了一些性能測試的答案,並找不到兩種方法之間的任何顯着差異。
嘗試一下並自己測量一下,但應該有接近零的性能差異。 –
對不起,是的,我當然可以(也會)自己做。這是一個普遍的問題,如果在一些隨機的情況下可能存在顯着的差異,這是我不知道的。 – phil13131
不要爲了微不足道的性能收益妥協一個好的軟件設計(假設,並且我相信這樣,在這種情況下沒有顯着的收益) –