2011-09-27 11 views
6

Tôi đang chạy trình thu thập bộ nhớ trên ứng dụng của mình để tìm rò rỉ bộ nhớ có thể xảy ra. Số lượng các đối tượng System.Data.Metadata.Edm.TypeUsage liên tục phát triển và có vẻ như điều này có thể là nguyên nhân gây ra các vấn đề về bộ nhớ của tôi.Loại khuôn khổ đối tượngSử dụng đối tượng

Có ai biết cách giải phóng các đối tượng TypeUsatge này khỏi bộ nhớ không? Họ xem xét các đối tượng Entity Framework bên trong vì tôi không có bất kỳ tham chiếu nào đến chúng trong mã của tôi. Tôi đã xác nhận rằng tôi đã bọc đối tượng bối cảnh trong một khối sử dụng, và bộ nhớ đang được phát hành, nhưng việc sử dụng Loại này không muốn biến mất.

Bất kỳ trợ giúp nào bạn có thể cung cấp sẽ được đánh giá cao.

Trả lời

0

Có thể bạn đang xem bộ nhớ cache cấp 1 (Change Tracker) mà Entity Framework sử dụng bên dưới. Để đọc thêm về nó, hãy kiểm tra điều này. Tôi sẽ ngạc nhiên nếu có rò rỉ bộ nhớ ở đây, nhiều khả năng đây chỉ là hành vi bình thường. Bạn thấy rò rỉ bao nhiêu bộ nhớ?

Để giải phóng bộ nhớ, hãy thử sử dụng tùy chọn hợp nhất khác (như NoTracking). Mặc định là AppendOnly, nó sẽ giữ các kiểu trong bộ nhớ mà bạn có thể sử dụng lại. Tùy chọn hợp nhất NoTracking sẽ chuyển đến cơ sở dữ liệu mỗi lần và không giữ gì trong bộ nhớ.

Hy vọng điều này sẽ hữu ích.

Các vấn đề liên quan