[英]What's the best way to sort about 2.5 million records in memory in c#?
[英]What is the best way to find a process's memory allocations in terms of C# objects
我已经编写了各种基于C#控制台的应用程序,其中一些长时间运行,有些则没有,随着时间的流逝,它们可能会占用大量内存。 通过任务管理器查看Windows性能监视器时,我总是想起同样的问题。 如何按类型细分构成此足迹的对象数目; 哪些是f可及的,哪些不是f,因此可以收集。 在很多情况下,我都执行了代码检查,以确保我不必要地握住对象的时间不超过要求的时间,并确保使用using构造对象。 最近,当我释放大量对象(例如保存在刚刚清除的集合中)时,我还研究了采用CG.Collect方法。 但是,我不确定这有什么大不同,所以我将代码丢掉了。 我猜想sysinternals套件中有一些工具可以帮助解决这些内存类型问题,但是我不确定哪个以及如何使用它们。 另一种选择是支付第三方配置文件工具,例如JetBrains dotTrace; 但我需要确保先了解免费选项,然后再向经理提出限制。
有CLR Profiler,可让您查看各种对象图(我从未使用过):
当然,经常推荐使用ANTS Profiler(免费试用)。 您不需要手动进行垃圾收集,GC是一种非常智能的构建解决方案,它可能比您进行的任何手动调用都更为优化。 更好的方法是最小化您保留在内存中的对象的数量-如果优先考虑内存,则应尽快删除占用大量内存的对象。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.