11

My Visual Studio (2010 SP1) có rò rỉ bộ nhớ nghiêm trọng và có vẻ như do một hoặc nhiều tiện ích mở rộng được cài đặt gây ra.Làm cách nào để tìm hiểu tiện ích Visual Studio nào gây ra rò rỉ bộ nhớ?

Tôi đã cố gắng thu hẹp xuống bằng cách bật và tắt tiện ích mở rộng và tiện ích bổ sung, nhưng phải mất một lúc làm việc để phát hiện rò rỉ đáng kể và kết quả không hoàn toàn thuyết phục. Nó hiếm khi mất hơn một vài giờ trước khi quá trình devenv.exe sử dụng bộ nhớ 2GB và bắt đầu trashing, mà đang trở thành một chút đau đớn để làm việc với.

Có cách nào để VS phát ra thông tin về bộ nhớ được cấp phát cho tiện ích không?

Tiện ích mở rộng được quản lý có đang chạy trong AppDomain của riêng họ không? Có lẽ điều đó sẽ cho phép tôi bật một số bộ đếm hiệu suất có thể giúp xác định vấn đề.

Bất kỳ điều gì khác tôi có thể thực hiện để khắc phục sự cố này ngoài việc vô hiệu từng nội dung cho đến khi sự cố biến mất?

+0

Bạn có đang sử dụng bất kỳ công cụ nào không (I.e .: jetBrains dotTrace, trình ghi bộ nhớ Scitech, .net clr profiler) để tách biệt vấn đề? có một danh sách tốt của họ ở đây http://stackoverflow.com/questions/3927/what-are-some-good-net-profilers – Maciej

+0

Tôi có giấy phép cho cả hai công cụ RedGate và jetBrains, nhưng không thấy làm thế nào họ có thể được sử dụng nhiều xem xét rằng phải mất một giờ sử dụng VS cho rò rỉ bộ nhớ đã phát triển đến một điểm mà bạn có thể xác định thủ phạm. Scitech có thể làm một cái gì đó với một quá trình bản địa như devenv, nhưng tôi không nghĩ rằng các công cụ tôi có sẽ được giúp đỡ nhiều. –

+0

Để làm rõ, tôi không nghĩ rằng sự rò rỉ là "luôn luôn hiện diện". Một cái gì đó mà tôi làm trong khi phát triển dường như cuối cùng gây ra vấn đề, và sau đó VS chỉ bắt đầu ăn bộ nhớ với tốc độ khá nhanh. Nếu tôi có thể đính kèm một hồ sơ sau khi điều này xảy ra nó thực sự có thể tạo ra một kết quả hữu ích. –

Trả lời

1

Theo số JetBrains faq page bạn sẽ có thể đính kèm vào quá trình đang chạy khi bắt đầu hiển thị các sự cố rò rỉ bộ nhớ. Có lẽ bạn có thể cho rằng một shot. Lưu ý rằng faq nói rằng bạn cần sử dụng phiên bản 5.

+0

Tôi đã hy vọng một ai đó sẽ cho tôi biết chỉ cần chạy devenv với một chuyển đổi/dumpMemoryStatsOnExit hoặc một cái gì đó, nhưng tôi đoán tôi sẽ phải xem những gì một profiler đến với. Cảm ơn, mặc dù vẫn mở cho bất kỳ tùy chọn nào không thực hiện tác vụ này một cách chuyên dụng .. –

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