Tôi khá mới đối với Scala.Bộ sưu tập Scala Garbage?
Nếu tôi có một cấu trúc như thế này,
sampleFile.map(line => line.map {
var myObj = new MyClass(word);
myObj.func();
})
tôi có thể tạo một đối tượng của MyClass
và làm điều gì đó bên trong một phương pháp học (func()
). Tôi lặp lại điều này cho tất cả các dòng trong một tập tin (thông qua map
). Vì vậy, tôi tạo ra một đối tượng ở mọi bước lặp của tôi (cho mỗi dòng). Phạm vi của myObj
sẽ bị vô hiệu khi tôi bắt đầu lặp lại tiếp theo (chúng sẽ bị hủy ở cuối khối, hoặc chúng sẽ bị mồ côi trong bộ nhớ?). Nghi ngờ của tôi là khi nào thì bộ sưu tập rác thải được kích hoạt? Ngoài ra, nó là tốn kém để tạo ra một đối tượng ở mỗi bước của iteration? Điều này có bất kỳ ý nghĩa hiệu suất nào khi số lượng các dòng tăng lên 1 triệu?
Không hoàn toàn. Có một điểm bên ngôn ngữ - chức năng ẩn danh trong Scala được đại diện bởi đối tượng Function và cách nó được cấp phát (onle once hoặc every iteration) có thể ảnh hưởng đến hiệu năng. –