12
A
回答
1
正如其他人建議的內存分析器,Memprofiler絕對是最先進的(我試過所有現有的.NET分析器)。它有14天的試用期。
3
那麼來自ANTS的.NET Memory Profiler怎麼樣? 也許CLR分析器。
0
當我們遇到瓶頸時,我們的QA團隊使用http://www.jetbrains.com/profiler/來處理這種事情。我很確定它會通過方法調用給你一個分配列表。我會去安裝它,並檢查:)
0
好的舊windbg + sos + pdb將使傾銷。關於「在源代碼中他們被創建的地方」的一部分 - 沒有儀器或注入是不可能的。
3
如果您創建內存轉儲,則信息不可用。爲了收集這些信息,你必須監視正在運行的進程。你可以通過WinDbg啓動應用程序,並在你感興趣的所有構造函數上設置斷點(希望你不想看每一個對象)。
如果您創建斷點,那麼它會轉儲堆棧,您將擁有該對象的創建點。但是,請記住,在GC期間物體可能會四處移動,這會使堆疊物體變得困難(甚至在某些情況下不可能)。
由於您的問題標有性能和性能分析,因此我想知道您希望減少內存分配。爲什麼不看看創建的對象的數量(或者可能通過查看堆來查看創建的最大對象)。然後通過源代碼並找出創建這些實例的位置。
1
您需要.NET內存分析器。這些工具允許您跟蹤垃圾收集堆中的對象圖,並且可以非常有用地識別內存泄漏的來源。雖然他們可能不一定會告訴你創建對象的方法,但他們會告訴哪些類的實例保留在對象上,並允許您捕獲gc堆的快照。他們不需要修改源代碼。你可能想在 What Are Some Good .NET Profilers?
0
相關問題
- 1. 堆棧或堆上的對象分配
- 2. 確定旋轉對象的位置
- 3. 在Unity 3D中確定對象位置
- 4. 對象分配在堆棧或堆C++
- 5. 在堆上分配的對象
- 6. 基於C++堆棧的對象分配
- 7. 性能差B在C + +/w的堆中分配對象和堆棧分配的對象
- 8. 對象不正確定位
- 9. 在div中的確切位置中的位置對象
- 10. 受保護的堆對象堆棧vs堆棧分配
- 11. C++中的對象分配
- 12. Ruby中的對象分配
- 13. PHP中的對象分配
- 14. PHP中的對象分配
- 15. Shiny中的對象分配
- 16. 如何確定在VisualVM堆轉儲中實例化對象的位置
- 17. 堆分配對象構造函數
- 18. 將堆對象分配給std :: map
- 19. 位置對象
- 20. 對象分配
- 21. 對象分配
- 22. 克隆對象的確切位置
- 23. 用戶定義的類對象的堆棧分配
- 24. 堆棧中的對象vs C++堆中的對象
- 25. SpriteKitScene中的對象定位
- 26. 定位對象中的JavaScript
- 27. 將創建的對象分配給選定的對象
- 28. 確定對象
- 29. 分配對象時分配
- 30. 如何確定在給定的對象在Javascript中的對象?
從看着審訊看起來非常好! –