我在考慮更多我的程序現在將使用多少系統內存。我目前在大學做一級計算,我知道在大多數程序中,差異可以忽略不計,但我想知道下列實際上是否在任何語言中都有所不同。If語句中的內存效率
說我想輸出「真」或「假」取決於條件是否爲真。就個人而言,我更願意做這樣的事情:
Dim result As String
If condition Then
Result = "True"
Else
Result = "False"
EndIf
Console.WriteLine(result)
不過,我想知道,如果下面將消耗更少的內存,等:
If condition Then
Console.WriteLine("True")
Else
Console.WriteLine("False")
EndIf
顯然,這是一個很大大簡化例子,在我的大多數情況下,還有更多需要輸出的信息,而且我意識到在大多數商業程序中,這類陳述很少見,但希望你能得到原則。
我在這裏關注VB.NET,因爲這是用於該課程的語言,但真的我很想知道這在不同的編程語言中有何不同。
正如dasblinkenlight所說,除非在特定情況下(高內存要求複雜系統),否則內存現在不是問題。無論如何,你應該把你的記憶力最大化的努力集中在其他方面,這可能會得到更多的關注效果。中間變量的聲明(這裏的「結果」)幾乎沒有任何影響(你正在實例化給定類,字符串;在寫第二個代碼的時候也是「True」/「False」)。有些人傾向於將代碼的長度與實際的性能/內存利用率等聯繫起來,這兩種情況都沒有關係... – varocarbas
...打算優化代碼的編寫方式(並且構建程序以使內存開銷爲儘可能低)毫無疑問是一件好事,但你應該把重點放在真正重要的事情上(做一些關於高度記憶消耗實踐的研究),並且有一個想法很明確:從代碼的大小你不能獲得任何有價值的信息;做一些研究或者實施一種確定內存消耗的方法,如果你想知道每一點「昂貴」是多少。 – varocarbas
@varocarbas感謝您的意見。我看到你的觀點,我認爲這將是關於聲明中間變量的情況......我知道示例代碼的大小意味着沒有什麼是真正相關的,但是它只是將我想要問的概念。 – Andy