-1
我正在做一些沉重的數據庫處理和正在錯誤消息在Scala中,以下模式匹配會阻止垃圾收集過多嗎?
GC開銷超過限制
造成
的ResultSet的getString
在我代碼我有如下支票
val myVal = result.getString("COLUMN")
if (myVal == ...) {}
什麼我不知道是,如果我改變這個
result.getString("COLUMN") match {
case ...
}
能節省的變量不必被創建和垃圾收集?或者這是一些內部機制,這意味着無論如何都會發生這種情況?
編輯:結果是一個JDBC結果集
如果您認爲垃圾回收是關於變量的,那麼您應該重新理解GC。變量只是指向對象的名稱標籤。無論哪種方式:更多的代碼,特別是關於「結果」的細節,可能會幫助人們提供幫助。 – delnan
我想說建議的改變沒有改變,因爲儘管如此,仍然需要創建對象來進行比較。你應該做一些分析來隔離代碼中創建大量對象的部分。可能值得嘗試在數據庫中進行數據處理而不是Scala代碼,以避免將數據庫內容傳輸到JVM中的對象。 –